Будет ли сборщик мусора в Java прерывать поток? - PullRequest
4 голосов
/ 10 марта 2010

Что-то прерывает потоки в моем приложении.Похоже, это происходит, когда JVM близка к исчерпанию пространства кучи.Я могу настроить дополнительную кучу для JVM, но мне любопытно, прерывает ли сборщик мусора потоки в попытке восстановить память.Кто-нибудь знает?Я использую 64-битную Java 1.6.0_16 на RedHat ES 5.2.

Спасибо,

Джон

Ответы [ 3 ]

11 голосов
/ 10 марта 2010

Прерывание как в броске InterruptedException? Нет, этого не должно случиться. Возможно, потребуется приостановить сам поток, но это не одно и то же. Если у виртуальной машины недостаточно памяти, вместо нее следует выдать OutOfMemoryError ...

2 голосов
/ 10 марта 2010

Если не происходит OutOfMemory, потоки не будут прерываться, если происходит сборка мусора. Они могут на некоторое время перейти в состояние ожидания.

0 голосов
/ 26 февраля 2012

Возможно, вы получаете так называемые ложные прерывания . Они могут произойти в любое время, но ситуация с нехваткой памяти / высокой нагрузкой может сделать их более вероятными. Однако это будет зависеть от деталей реализации JVM, это не правило, и корреляция со сборкой мусора (если она вообще есть) является случайной, а не преднамеренной.

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