Вопрос по java, multithreading – Как Java обрабатывает многопоточность?

4

Как Java решает, какое ядро ​​назначить потоку или процессу? Есть ли способ контролировать это? предотвратить выполнение двух больших потоков на одном ядре?

По сути, я спрашиваю дополнительную информацию о том, как многопоточность работает в Java или как управлять ею в Java.

Ваш Ответ

4   ответа
4

Но если вы разделите вашу программу на два процесса, вы сможете назначить эти процессы конкретным процессорам на уровне ОС.

http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html

@Tim Bender: +1 ... и прокомментируйте (невежественные) комментарии, объясняющие, что установка соответствия процессоров не имеет смысла в 3..2..1 :) SyntaxT3rr0r
0

но в целом реализации Java полагаются на функциональность многопоточности ОС. Насколько мне известно, нет общедоступных и стандартных расширений для установки соответствия. Однако могут быть экспериментальные JVM, которые предлагают хуки.

Более того, вмешательство в абстракцию JVM, чтобы связываться напрямую с базовой платформой, до некоторой степени (и IMHO) противоречит духу Java.

2

Это не так. Операционная система делает.

Есть ли способ контролировать это? предотвратить выполнение двух больших потоков на одном ядре?

Не в Java.

По сути, я спрашиваю дополнительную информацию о том, как многопоточность работает в Java или как управлять ею в Java.

Там нет ни одного. Это все делает ОС.

В основном вы задаете не тот вопрос.

Но остались ли в мире зеленые нити? user207421
Вопрос типа имеет немного больше смысла для зеленых нитей. Thorbjørn Ravn Andersen
2

Многопоточность в Java.

Что касается планирования потоков - операционная система должна обрабатывать планирование потоков соответствующим образом. Вам обычно не нужно беспокоиться об этом.

Класс Java Thread в настоящее время не предоставляет метод для установки соответствия потоков вручную, хотя это предлагалось в прошлом.

Похожие вопросы