Chapter 24 The threads libraryこのページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 last mod. 2008-09-18 (木) 16:02:12
The Objective Caml system release 3.10 threads ライブラリを使うと Objective Caml で並列プログラミングが可能になります。 同じメモリスペースで協調して実行する複数スレッド (軽量プロセスとも呼ばれます) をコントロールすることができます。 スレッドは共有データ構造の書き換えや、通信チャンネルでデータを送受信することで通信します。 threads ライブラリはシングルプロセッサのタイムシェアリングによって実装されています。 マルチプロセッサマシンのアドバンテージは利用できません。 つまりこのライブラリを使用しても、より速く動作するプログラムを作成することは出来ません。 しかし通信プロセスとして構造化されたプログラムを書くときは、これを利用すると容易になります。 threads ライブラリにはオペレーティングシステムの互換性に応じて2つの実装が使えます:
可能なときには、システムスレッドはバイトコードとネイティブコードのプログラム両方をサポートします。
これは Unix システムで利用可能ですが、バイトコードのプログラムしかサポートされません。ネイティブコードのプログラムでは使うことはできません。 threads ライブラリを使用するプログラムは以下のようにリンクしてください: ocamlc -thread other options unix.cma threads.cma other files ocamlopt -thread other options unix.cmxa threads.cmxa other files threads ライブラリを使うコンパイルユニットは -thread オプション付きでコンパイルする必要があります(8章を見てください)。 VM レベルスレッドを使うプログラムは ocamlc に -vmthread オプション付きでコンパイルし(8章を見てください)、次のようにリンクする必要があります: ocamlc -vmthread other options threads.cma other files threads ライブラリを使うコンパイルユニットは -vmthread オプション付きでコンパイルする必要があります(8章を見てください)。
|