Spec-Zone.ru › OCaml 5.0

Глава 33 Библиотека потоков

Библиотека threads позволяет реализовывать конкуретную программирования в OCaml. Она предоставляет многочисленные потоки управления (также называемые лёгкими процессами), которые выполняются одновременно в одном адресном пространстве. Потоки взаимодействуют путём изменения общих структур данных на месте или путём отправки и получения данных по каналам связи.

Библиотека threads реализована поверх системных средств многопоточности: POSIX 1003.1c потоков для Linux, MacOS и других Unix-подобных систем; Win32 потоков для Windows. Только один поток одновременно может выполнять код OCaml в определённой области 9.5.1. Следовательно, возможности параллелизма ограничены частями программы, которые выполняют системный или код C-библиотеки. Однако потоки обеспечивают конкурентность и могут быть использованы для структурирования программ как нескольких взаимодействующих процессов. Потоки также эффективно поддерживают одновременные перекрывающиеся операции ввода-вывода.

Программы, использующие потоки, должны быть связаны следующим образом:

        ocamlc -I +unix -I +threads other options unix.cma threads.cma other files
        ocamlopt -I +unix -I +threads other options unix.cmxa threads.cmxa other files

Модули, использующие библиотеку threads, также должны быть скомпилированы с опцией -I +threads (см. главу 13).

  • Модуль Thread: лёгкие потоки
  • Модуль Event: синхронная коммуникация первого класса

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/libthreads.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API