Java - отношения между потоками и процессорами

Я довольно новичок в многопоточности, и я работаю над проектом, в котором я пытаюсь использовать 4 процессора в моей Java-программе. Я хотел сделать что-то вроде

int numProcessors = Runtime.getRuntime().availableProcessors();
ExecutorService e = Executors.newFixedThreadPool(numProcessors);

Будет ли это гарантировать, что у меня будет один поток, работающий на процессор? В то время, когда я создаю потоки, система не будет занята, однако через некоторое время она будет чрезвычайно занята. Я думал, что ОС выберет наименее загруженный процессор для создания потоков, но как это работает, если ни один из них не особенно занят во время создания?

Кроме того, служба пула потоков должна повторно использовать потоки, но если она увидит, что на другом процессоре больше доступности, уничтожит ли поток и создаст там новый?

Ответы на вопрос(3)

Ваш ответ на вопрос