Всем доброго времени суток.
Допустим мы создаем пул потов и запускаем его считать сложное задание.
ExecutorService service = Executors.newFixedThreadPool(12);
for (int i = 0; i < 500; i++) {
service.submit(() -> new DustCounter().countAllDustInRoom());
}
Вопрос - каждый поток привязывается к какому-то конкретному ядру или же в процессе исполнения программы может исполняться на другом ядре?
Я предполагаю, что при создании потока он привязывается к какому-то ядру, так как все объекты(не volatile), созданные этим потоком появляются в L1 кэше процессора. Как я понял, ядра имеют доступ только к своему L1 кэшу, а если поток будет исполняться на другом ядре, то он не увидит свои объекты, которые находятся в кэше другого ядра
Я правильно мыслю?