Интересует, как реагирует поток, который закрывается извне, если он содержит работу с сокетной системой, а именно: Закрываются ли сокеты и стирается ли информация о них, если поток закрывается извне с помощью функций .stop()
или .interrupt()
?
ThreadDeath
, провоцируемый методом stop()
никакие захваченные потоком ресурсы, не освобождает, только мониторы.
Крайне не рекомендуется останавливать потоки методом stop()
, это работает, однако, все мониторы, которые были захвачены в этом потоке (секции кода, обёрнутые synchronized
), будут отпущены, что в свою очередь может привести к не консистентному состоянию приложения.
interrupt()
же устанавливает внутренний флаг, который вы можете проверить внутри вашего потока, все правильно закрыть и завершить выполнение.
Для этого у потока есть метод isInterrupted()
он проверяет флаг прерывания у потока. При этом сам флаг не сбрасывается.
Так же есть метод interrupted()
он проверяет был ли установлен флаг прерывания у текущего потока. При этом флаг прерывания после вызова этого метода сбрасывается.
Виртуальный выделенный сервер (VDS) становится отличным выбором
помогите найти ошибкуПрограмма запускается, но кнопки не реагируют на нажатия
Необходимо по команде выполнить запуск python скриптаНе использовал jython т
Каждый элемент массива нужно умножить с каждым элементом этого массива и проверить, является ли квадратный корень этого произведения, целым...