ть, потребуется ли другому пот
Автор admin Среда, 24 июня 2009 11:32
ть, потребуется ли другому потоку обратиться к этому объекту Runnable, поэтому объект Runnable может быть уничтожен преждевременно. Для решения этой проблемы в библиотеке ZThreads организуется автоматический подсчет ссылок на задачи. Задача продолжает существовать до тех пор, пока счетчик ссылок на нее не упадет до нуля; в этот момент задача удаляется. Отсюда следует, что объекты задач всегда должны удаляться динамически, поэтому они не могут создаваться в стеке. Вместо этого задачи всегда создаются оператором new, как во всех примерах этой главы. Нередко также приходится заботиться о том, чтобы другие объекты продолжали существовать до тех пор, пока они могут использоваться задачами. В противном случае эти объекты могут выйти из области видимости до завершения задач. Если это произойдет, попытки обращения к несуществующим объектам приведут к программным сбоям. Рассмотрим простой пример: //: СП:Incrementer.cpp // Уничтожение объектов до завершения программных потоков // может вызвать серьезные проблемы. //{L} ZThread #incl ude
Комментарии закрыты.
Последние комментарии