как уничтожить поток в Java после завершения задачи

Если я неправильно не запускаю с версии 1.5, SVN может отследить перемещенный files\folders. В TortoiseSVN использование может переместить файл через drag& отбрасывание.

7
задан xlm 12 March 2014 в 08:45
поделиться

3 ответа

Если вы используете пул потоков, вы не должны завершать поток для начала - весь смысл пула потоков заключается в повторном использовании потоков.

Если вы этого не сделаете. t хотят, чтобы повторно использовал поток, а затем просто запустите новый поток вместо использования пула потоков - и просто позвольте потоку умереть, вместо того, чтобы вызывать stop или destroy. Эти методы устарели по уважительной причине - их в основном не следует вызывать.

Не совсем ясно, как это может вызвать исключение нехватки памяти - есть ли причина, по которой вы сосредотачиваетесь на потоковой передаче как вероятной причине?

14
ответ дан 6 December 2019 в 07:51
поделиться

Чтобы закрепить то, что сказал @Jon Skeet, ДЕЙСТВИТЕЛЬНО ПЛОХАЯ ИДЕЯ вызывать устаревшие методы Thread.stop () или Thread.destroy () .

Согласно javadoc, Thread. destroy () был принципиально опасен и никогда не был реализован. Первоначальная идея заключалась в том, чтобы просто убить поток и сломать все его блокировки монитора. Если бы это произошло в середине обновления общей структуры данных, структура данных осталась бы в неопределенном состоянии. Другие потоки, ожидающие, когда убитый поток уведомит какой-либо объект, будут ждать вечно.

Thread.stop () приводит к возникновению исключения ThreadDeath в неожиданном (для кода, в который попал код) месте. Это немного более упорядоченно, чем уничтожение потока, но если весь остановленный поток (включая все, что он вызывает) тщательно записан с помощью блоков finally для уведомления официантов, восстановления структур данных и т. Д., У вас есть та же проблема.

Обратитесь к Java Thread Primitive Deprecation за всей историей.

5
ответ дан 6 December 2019 в 07:51
поделиться

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

4
ответ дан 6 December 2019 в 07:51
поделиться
Другие вопросы по тегам:

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