любом случае, если Count содер
Автор admin Среда, 24 июня 2009 11:32
любом случае, если Count содержит массив int, компилятор вынужден разместить данные в стеке, а не в регистре. Incrementer — простая задача, использующая объект Count. Внутри main() задачи Incrementer выполняются достаточно долго для того, чтобы объект Count вышел из области видимости, и задачи попытались обратиться к несуществующему объекту. При этом происходит сбой программы. Чтобы уладить проблему, необходимо позаботиться о том, чтобы любые объекты продолжали существовать в течение всего времени использования этих объектов задачами (если бы объекты не требовались разным задачам, их можно было бы включить непосредственно в класс задачи и тем самым связать жизненный цикл объекта с жизненным циклом задачи). Поскольку в нашем случае жизненный цикл объекта не должен определяться статической областью видимости, мы размещаем объект в куче. А чтобы объект не был уничтожен, пока он требуется другим объектам, следует применить механизм подсчета ссылок. Подсчет ссылок был достаточно подробно рассмотрен в первом томе книги; впрочем, он упоминался и на страницах этого тома. В библиотеку ZThread входит шаблон Count
Комментарии закрыты.
Последние комментарии