Когда я запускаю многопоточную java-программу, при выполнении ps -eF | grep program-name Я вижу только один процесс. Нити, выполняемые как часть этого процесса, являются подпроцессами. Оказывает ли ОС однопоточный и многопоточный процесс по-разному с точки зрения планирования?Является ли это, что многопоточный java-процесс запланирован чаще, чем одна потоковая программа ОС?
Является ли это, что многопоточный java-процесс запланирован чаще, чем одна потоковая программа ОС?
ответ
Нет, существует единое обращение для однопоточного или многопоточного процесса. ОС воспринимает процесс как набор потоков и расписаний только потоков; Это приоритет процесса, который меняет всю игру выбора планировщика, только если он считается или оцененными (отменяет)
Java не планирует, он делегирует планирования для базовой ОС. Каждая ОС имеет свой собственный способ планирования. Как правило, выше может быть указано (может быть исключение!)
Если процесс разделен на потоки таким образом, что более чем один из них является работоспособным в то же самое время, более чем один из них будет запущен. Вы не можете делать такие общие заявления. – EJP
@EJP theBeacon ничего не требовал. На самом деле процесс ОС может иметь несколько потоков, и он зависит от планировщика ОС для планирования потоков. Процесс с одним потоком - это процесс с потоками (хорошо - один). Btw - приоритеты следует рассматривать только как подсказки, и нет гарантии, что потоки с более высоким приоритетом получат больше времени процессора – gusto2
Возможно, дублированный вопрос, но есть некоторые интересные ресурсы: http://stackoverflow.com/questions/8463741/how-linux-handles-threads-and- процесс-планирование – gusto2
Спасибо! http://www.linuxquestions.org/linux/articles/Technical/Linux_Kernel_Thread Эта ссылка обеспечивает очень хорошее представление – Abhijeet