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