У меня есть сомнениеКонцепции нитей в Java
В штатном состоянии имеется 10 различных потоков. Каждый из них имеет приоритет 1-10. Как процессор планирует или выполняет эти потоки?
Спасибо, Ravi
У меня есть сомнениеКонцепции нитей в Java
В штатном состоянии имеется 10 различных потоков. Каждый из них имеет приоритет 1-10. Как процессор планирует или выполняет эти потоки?
Спасибо, Ravi
У ОС есть планировщик потоков, который будет (с использованием алгоритма) решать на основе приоритета и нескольких других факторов, которые будут выполняться дальше. Если у вас многоядерная система, каждый процессор может взять поток для своей учетной записи.
Существует также тот факт, что поток получает слот времени, а затем отключается для другого потока и должен снова ждать его поворота.
Но планирование потоков - это функция операционной системы.
Надеюсь, это даст вам ответ на ваш вопрос.
реализации Mainstream Java использовать «родные темы», что означает, что планирование потоков осуществляется с помощью операционной системы. Приоритеты Java-потоков simply map to OS-specific values. Вы должны прочитать документацию по ОС, чтобы понять, что означают эти уровни. :-)
С каких это пор это место заменило Google?
поиск Google для планирования потоков Java, первый результат:
http://lass.cs.umass.edu/~shenoy/courses/fall01/labs/talab2.html
+1, это кто-то другой, чем коллеги, задающие вопросы лично, прежде чем искать себя? –
Большинство запросов не так-то просто. Это были простые ключевые слова и первый ответ. Как ни странно, это было довольно интересно и вдавалось в хороший уровень детализации - кто-то заинтересован, вероятно, должен его прочитать. –
Проблема с Google заключается в том, что если вы не знаете точно, какие условия для поиска, результаты не очень полезны. Сравните результаты поиска: «Концепция потоков в Java» и «Планирование потоков Java». Задача в StackOverflow даст лучшие результаты, потому что на другом конце есть человек (даже когда он просто предоставляет ссылку, возвращенную gooogle) – OscarRyz
Стоит отметить, что окна игнорирует поднятый приоритеты, если вы не администратор, а на Linux все приоритеты игнорируются, если вы не корень.
Как правило, игра с приоритетами потоков не очень полезна.
Я не верю, что это всегда правда. Я считаю, что Java может эмулировать собственные потоки, если они не существуют на платформе. –
Это не всегда, случай, вы правы: до 1.2 версии JDK использовались зеленые потоки, IIRC. Но, в основном, JVMs используют собственные потоки в настоящее время, и, на мой взгляд, не полезно говорить о реализации «зеленых нитей». –
Java использует собственный поток, когда это возможно, не все реализации имеют собственный поток, а некоторые используют «зеленые» потоки. – OscarRyz