Spec-Zone.ru › OCaml
☰Библиотека OCaml
  • Основная библиотека
  • Стандартная библиотека
  • Фронтенд компилятора
  • Библиотека unix: вызовы систем Unix
  • Библиотека str: регулярные выражения и обработка строк
  • Библиотека runtime_events
  • Библиотека потоков
  • Библиотека dynlink: динамическая загрузка и компоновка объектных файлов
  • Недавно удаленные или перемещенные библиотеки (Graphics, Bigarray, Num, LablTk)

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

Библиотека 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: синхронная коммуникация первого класса
« Библиотека runtime_eventsБиблиотека dynlink: динамическая загрузка и компоновка объектных файлов »
Авторское право © 2024 Institut National de Recherche en Informatique et en Automatique

© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/libthreads.html

Spec-Zone.ru

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