ничтожаются локальные объекты
Автор admin Суббота, 27 июня 2009 11:32
ничтожаются локальные объекты и, наконец, происходит выход из цикла по условию while. Но если interrupt() вызывается между pointl и point2 (после команды while, но перед или во время блокирующей операции sleep()), выход из задачи происходит через Interrupted_Exception. В этом случае уничтожаются только те стековые объекты, которые были созданы до точки запуска исключения, и вам предоставляется возможность выполнить всю прочую зачистку в секции catch. Класс, спроектированный для обработки interrupt(), должен обеспечить сохранение целостности своего состояния. Обычно это означает, что все захваты ресурсов должны инкапсулироваться в стековых объектах, чтобы деструкторы вызывались независимо от способа выхода из run(). При правильной реализации код выглядит достаточно элегантно. Вы можете создавать компоненты, которые полностью инкапсулируют свои механизмы синхронизации, но при этом реагируют на внешнее воздействие (через interrupt()) без включения специальных функций в интерфейс объекта. Кооперация между программными потоками Как было показано ранее, при параллельном запуске нескольких задач в разных прогр
Комментарии закрыты.
Последние комментарии