mitaichik
@mitaichik

Обрабатывает ли ExecuterService потоки на нескольких ядрах?

Всем привет! В Java новичек, сейчас читаю книгу и возник вопрос по многопоточности:

В книге написанно что разные потоки могут выполняться на разных ядрах. Я так понял что все что касается, так сказать, старой модели потоков (Thread/ExecuterService) выполняются всегда на одном ядре, а новое API Fork/Join Framework как раз-таки позволяют разделять потоки по ядрам.

Так ли это? Или обычные Thread так же могут работать на разных ядрах?
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@red-barbarian
посмотрите https://youtu.be/W82D9eUn6q8?list=LLmQvzzT2ZgTt1MZ...
возможно, оно для начинающего сложное, но интересное.
По вашему вопросу:
там были разные подходы к построению параллельных вычислений (с разными классами)
все они дали примерно одни и те же результаты (почти все )))
результат такой на n-ядерном процессоре скорость вычисления растет с количеством потоков вычисления до количества n. затем останавливается.
Это говорит, что все реализации (классы потоков, экзекьютеров и проч) используют много ядерность. Кстати повторить эти опыты можете сами. Это довольно легко.
Конечно это зависит от виртуальной машины (jvm), но думаю почти все они используют многоядерность.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы