threads 函式庫允許在 OCaml 中進行並行程式設計。它提供了多個控制線程(也稱為輕量級進程),這些線程在相同的記憶體空間中同時執行。線程透過原地修改共享資料結構,或在通訊通道上發送和接收資料來進行通訊。
threads 函式庫是在作業系統提供的線程設施之上實作的:Linux、MacOS 和其他類 Unix 系統的 POSIX 1003.1c 線程;Windows 的 Win32 線程。在特定的域中,一次只允許一個線程執行 OCaml 程式碼 9.5.1。因此,並行化的機會僅限於執行系統或 C 函式庫程式碼的程式部分。然而,線程提供了並發性,並且可以用來將程式架構成多個通訊進程。線程也有效支援並發、重疊的 I/O 操作。
使用線程的程式必須按以下方式連結
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 章)。