Глава 35 Библиотека потоков
Библиотека 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-2026 INRIA.
https://ocaml.org/manual/5.5/libthreads.html