Spec-Zone.ru › OCaml 4.14

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

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

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

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

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

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

  • Модуль Thread: лёгкие потоки
  • Модуль Mutex: блокировки для взаимного исключения
  • Модуль Condition: переменные условия для синхронизации между потоками
  • Модуль Semaphore: семафоры, другой механизм синхронизации потоков
  • Модуль Event: синхронная межпроцессная коммуникация

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

Spec-Zone.ru

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