Если я неправильно не запускаю с версии 1.5, SVN может отследить перемещенный files\folders. В TortoiseSVN использование может переместить файл через drag& отбрасывание.
Если вы используете пул потоков, вы не должны завершать поток для начала - весь смысл пула потоков заключается в повторном использовании потоков.
Если вы этого не сделаете. t хотят, чтобы повторно использовал поток, а затем просто запустите новый поток вместо использования пула потоков - и просто позвольте потоку умереть, вместо того, чтобы вызывать stop или destroy. Эти методы устарели по уважительной причине - их в основном не следует вызывать.
Не совсем ясно, как это может вызвать исключение нехватки памяти - есть ли причина, по которой вы сосредотачиваетесь на потоковой передаче как вероятной причине?
Чтобы закрепить то, что сказал @Jon Skeet, ДЕЙСТВИТЕЛЬНО ПЛОХАЯ ИДЕЯ вызывать устаревшие методы Thread.stop ()
или Thread.destroy ()
.
Согласно javadoc, Thread. destroy ()
был принципиально опасен и никогда не был реализован. Первоначальная идея заключалась в том, чтобы просто убить поток и сломать все его блокировки монитора. Если бы это произошло в середине обновления общей структуры данных, структура данных осталась бы в неопределенном состоянии. Другие потоки, ожидающие, когда убитый поток уведомит какой-либо объект, будут ждать вечно.
Thread.stop ()
приводит к возникновению исключения ThreadDeath в неожиданном (для кода, в который попал код) месте. Это немного более упорядоченно, чем уничтожение потока, но если весь остановленный поток (включая все, что он вызывает) тщательно записан с помощью блоков finally
для уведомления официантов, восстановления структур данных и т. Д., У вас есть та же проблема.
Обратитесь к Java Thread Primitive Deprecation за всей историей.
Когда задача завершена, выполнение потока должно вернуться. Больше ничего не делать. Это обо всем позаботится.