Документация
Знакомство с CntmLib
Общие сведения
Установка и использование
Основные пакеты
Вспомогательные пакеты
Лицензия
Описание классов
|
НАЗНАЧЕНИЕ ПАКЕТА
Данный пакет содержит базовые классы, связанные с единицами выполнения.
Единица выполнения это код (обычно метод объекта), выполняющийся, в определенной степени, автономно
(по времени) от кода, создавшего единицу выполнения. К единицам выполнения
относятся асинхронные процедуры и потоки активных объектов (см.
документацию по пакетам асинхронных процедур и
активных объектов).
Базовый класс единицы выполнения - Cntm::ExecutionUnit. Потомки этого класса
предоставляют сервис по созданию конкретных типов единиц выполнения.
Взаимодействие с единицами выполнения осуществляется через специальные объекты
- хэндлы, которые во многом схожи со ссылочными указателями. Класс
Cntm::ExecutionUnitHandle является базовым классом хэндлов единиц выполнения.
В некоторых случаях (например, для активных объектов) единица выполнения не хранит ссылочный указатель на объект,
метод которого выполняет. Для получения ссылочного указателя из обычного (например, из this) можно применять т.н. Using-объекты,
которые комбинируют преобразование и хранение ссылочного указателя на объект с проверкой требования завершения
текущей единицы выполнения и состояния объекта (объект не должен находиться в удаляемом состоянии). Для этого
служат классы Cntm::Using, Cntm::UsingSync
и Cntm::UsingReentrantSync
. Последние два
помимо всего прочего производят вход в синхропространство.
СМ.
Класс Cntm::ExecutionUnit
Класс Cntm::ExecutionUnitHandle
Классы Using-объектов Cntm::Using, Cntm::UsingSync
и Cntm::UsingReentrantSync
Асинхронные процедуры и активные объекты
|