threads ライブラリを使うと Objective Caml で並列プログラムを書くことができます。
同一のメモリ空間で協調して実行する複数のスレッド(軽量プロセスとも呼ばれます)を制御することができます。
スレッドは共有データ構造の書き換えや、通信チャネルでデータを送受信することで通信します。
threads ライブラリは単一プロセッサ上の時分割によって実装されています。
マルチプロセッサマシンを活用することはできません。
つまりこのライブラリを使用しても、プログラムを高速化することはできません。
しかし、相互に通信する複数のプロセスとして構造化されたプログラムを書くことは容易になります。
threads ライブラリには OS の機能に応じてふたつの実装があります。
threads ライブラリを使用するプログラムは以下のようにリンクしてください。
ocamlc -threadother optionsunix.cma threads.cmaother filesocamlopt -threadother optionsunix.cmxa threads.cmxaother files
threads ライブラリを使う翻訳単位は -thread オプション付きでコンパイルしなければなりません( 8 章「バッチコンパイル(ocamlc)」 を参照してください)。
VM レベルスレッドを使うプログラムは ocamlc に -vmthread オプション付きでコンパイルし( 8 章「バッチコンパイル(ocamlc)」 を参照してください)、次のようにリンクしなければなりません。
ocamlc -vmthreadother optionsthreads.cmaother files
threads ライブラリを使う翻訳単位も -vmthread オプション付きでコンパイルしなければなりません( 8 章「バッチコンパイル(ocamlc)」 を参照してください)。