Главная » Haskell » Модуль QSem

0

содержит определения программных сущностей, предназначенных для работы с простыми семафорами, которые используются для синхронизации управления между несколькими потоками. Данный модуль является «подчинённым» по отношению к модулю Concurrent,  поэтому его импорт выглядит следующим образом:

import  Control.Concurrent.QSem

Кроме того, если модуль Concurrent  уже подключён, импортировать модуль

QSem нет необходимости.

Главный алгебраический тип данных, который  определяет понятие  простого семафора, определён в рассматриваемом модуле под идентификатором QSem. Данный  тип  является абстрактным и  определён  внутри  транслятора языка Haskell. Для него также определён экземпляр класса Typeable.

Далее описываются все прикладные  функции, которые работают с простыми семафорами.

Функция: newQSem

Описание: строит новый простой семафор.

Определение:

newQSem  :: Int ->  IO QSem

Функция определена в виде примитива.

Функция: waitQSem

Описание: ожидает, когда заданный простой семафор освобождается.

Определение:

waitQSem  :: QSem  ->  IO ()

Функция определена в виде примитива.

Функция: signalQSem

Описание: сигнализирует о том, что заданный простой семафор свободен.

Определение:

signalQSem :: QSem  ->  IO ()

Функция определена в виде примитива.

7.3.4.       Модуль QSemN

N содержит определения программных сущностей, предназначенных для работы с семафорами, в которых потоки  могут  ожидать произвольное количество данных. Данный модуль является «подчинённым» по отношению к модулю Concurrent,  поэтому его импорт выглядит следующим образом:

import  Control.Concurrent.QSemN

Кроме того, если модуль Concurrent  уже подключён, импортировать модуль

QSemN нет необходимости.

Главный алгебраический тип данных, который определяет понятие простого семафора, определён в рассматриваемом модуле  под идентификатором QSemN. Данный  тип  является абстрактным и  определён  внутри  транслятора языка Haskell. Для него также определён экземпляр класса Typeable.

Далее описываются все прикладные функции, которые работают с семафора-

ми.

Функция: newQSemN

Описание: строит новый семафор с заданным количеством единиц ожидания.

Определение:

newQSemN  :: Int ->  IO QSem

Функция определена в виде примитива.

Функция: waitQSemN

Описание: ожидает, когда заданный семафор освобождается  до  определённого количества единиц.

Определение:

waitQSem  :: QSem  ->  Int ->  IO ()

Функция определена в виде примитива.

Функция: signalQSemN

Описание: сигнализирует о том, что заданный простой семафор свободен.

Определение:

signalQSem :: QSem  ->  Int ->  IO ()

Функция определена в виде примитива.

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии