Причина, по которой вам нужно позаботиться, заключается в том, что процессоры вообще не работают быстрее. Вместо этого больше компьютеров добавляются в компьютеры в виде дополнительных ядер. Чтобы программа могла использовать дополнительные процессоры, она, как правило, должна использовать для этого несколько потоков. Java и большинство других языков не будут автоматически использовать больше потоков в вашей программе. Это то, что вам нужно сделать вручную.
Некоторые люди предпочитают функциональные языки стиля, такие как Scala, Erlang и F #, не функциональные для многопоточного программирования. Функциональные языки, как правило, по меньшей мере, по меньшей мере, являются незначительными неизменяемыми по умолчанию, и, следовательно, теоретически с ними легче работать в многопоточных ситуациях.
Вот очень хорошая статья на эту тему