Existe problema em ir criando novas Threads o tempo todo?

Eu estou tentando fazer uma aplicação usar uma thread separada. Mas depois que ativamos o método .start do objeto Thread, ele não pode ser chamado novamente senão crasha. Então as pessoas falam que a solução é colocar um “new Thread(runnable).start”. Acredito que isso deverá criar novas threads sempre que o comando precisar ser executado. Essa prática é válida? Não tem problema?