Предположим, я пишу программу, использующую неизменяемые структуры данных на Java. Даже если это не функциональный язык, он должен работать параллельно. Как мне убедиться, что моя программа выполняется с использованием всех ядер моего процессора? Как компьютер решает, какой код может выполняться параллельно?
P.S. Я хотел задать этот вопрос не для того, чтобы выяснить, как распараллелить Java-программы. Но чтобы знать - как компьютер распараллеливает код. Может ли это сделать это в функциональной программе, написанной на не функциональном языке?