ии ресурсов. По этой причине в
Автор admin Пятница, 26 июня 2009 11:32
ии ресурсов. По этой причине выход из середины функции run() больше всего напоминает запуск исключения. В библиотеке ZThreads для аварийных прерываний такого рода тоже применяются исключения (причем в этом случае исключения часто запускаются для управления логикой программы, что обычно категорически не рекомендуется1). Чтобы при завершении задачи подобным образом происходил возврат к заведомо допустимому состоянию, необходимо тщательно проанализировать выполняемые ветви в вашей программе и выполнить всю необходимую зачистку в секции catch. Мы рассмотрим эти проблемы в данном разделе. Для завершения заблокированных потоков в библиотеку ZThread включена функция Thread::interrupt(), устанавливающая статус прерывания для потока. Поток с установленным статусом прерывания запускает исключение Interrupted_Exception, если он уже заблокирован или попытается выполнить операцию блокировки. Статус прерывания сбрасывается при запуске исключения или при вызове задачей функции Thread::interrupted(). Как видите, функция Thread::interrupted() предоставляет второй способ выхода из цикла run() без запуска исключения. След
Комментарии закрыты.
Последние комментарии