Потоки, созданные в Java, ведут себя по-другому в Windows и Linux?

Как, что я знаю, Java использует потоки операционной системы (в отличие от т.е. Erlang), который означает, что потоки, созданные с Java в Windows и Linux, могут вести себя отличающиеся.

Есть ли какие-либо различия на потоках Java в Windows и Linux? Каково самое большое различие? Это - возможно, только разница в производительности?

15
задан Matt Joiner 15 July 2010 в 01:04
поделиться

3 ответа

Это очень общий вопрос, поэтому я дам общий ответ.

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

Интерфейс потоков, предоставляемый Java каждой ОС, и аналогично собственные интерфейсы для потоковой передачи через pthreads и потоки Windows очень похожи.

Самая большая разница в отношении потоковой передачи на двух платформах заключается в том, что все потоки в Linux являются формой процесса. Windows по-разному относится к потокам и процессам.

По моему личному опыту, собственные потоки в Windows немного легче и могут работать немного лучше в приложениях с одним процессом. Соответственно (и, возможно, неважно) процессы Windows являются чрезвычайно тяжелыми по сравнению с их аналогами в Linux.

16
ответ дан 1 December 2019 в 04:17
поделиться

Я уже использовал thread в обеих ОС, и никаких отличий для java-разработчика нет. :)

0
ответ дан 1 December 2019 в 04:17
поделиться

JVM скрывает от вас все различия ОС. ..

как уже было сказано ранее, потоки в Windows намного тяжелее, чем в Linux.

по опыту, тяжелое многопоточное приложение могло иметь некоторые задержки с автоматическим сборщиком мусора памяти, которые могут генерировать огромные пики памяти.

0
ответ дан 1 December 2019 в 04:17
поделиться
Другие вопросы по тегам:

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