Потоки, созданные в Java, ведут себя по-разному в Windows и Linux? - PullRequest
15 голосов
/ 13 июля 2010

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

Существуют ли различия в Javaтемы на Windows и Linux?Какая самая большая разница?Это может быть только разница в производительности?

Ответы [ 3 ]

16 голосов
/ 13 июля 2010

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

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

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

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

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

0 голосов
/ 13 июля 2010

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

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

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

0 голосов
/ 13 июля 2010

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

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