module Thread: sig end
1003.1c
と Win32 用の軽量プロセスです。type t
Thread creation and termination
|
val create : ('a -> 'b) -> 'a -> t
Thread.create funct arg
は新しいスレッドを作成します。このスレッドでは関数適用 funct arg
がプログラムの他のスレッドと協調して実行されます。Thread.create
を評価すると新しく作られたスレッドのハンドルが返ります。 funct arg
の適用が正常に終了するか、キャッチされない例外が発生した場合、このスレッドは終了します。後者の場合、標準エラー出力に例外がプリントされますが、親スレッドには伝播しません。同様に、funct arg
の評価結果は捨てられ、親スレッドから直接アクセスすることは出来ません。val self : unit -> t
val id : t -> int
val exit : unit -> unit
val kill : t -> unit
Suspending threads
|
val delay : float -> unit
delay d
は、呼び出したスレッドの実行を d
秒間停止させます。この間他のスレッドは動作を続けます。val join : t -> unit
join th
は、呼び出したスレッドの実行を、スレッド th
が終了するまで停止させます。val wait_read : Unix.file_descr -> unit
Thread.wait_write
を見て下さい。val wait_write : Unix.file_descr -> unit
val wait_timed_read : Unix.file_descr -> float -> bool
Thread.wait_timed_read
を見て下さい。val wait_timed_write : Unix.file_descr -> float -> bool
wait_read
) 、一文字でも書けるようになる (wait_write
) まで、呼び出したスレッドの実行を停止させます。第二引数に与えられた秒数待っても条件を満たさない場合は終了します。ファイルディスクリプタの読み書きの準備が出来ている場合は true
を、制限時間をオーバーした場合は false
を返します。
Win32 での実装では、これらの関数はただちに true
を返します。
val select : Unix.file_descr list ->
Unix.file_descr list ->
Unix.file_descr list ->
float -> Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
Unix.select
と同じです。この関数は現在 Win32 では未実装です。val wait_pid : int -> int * Unix.process_status
wait_pid p
は、プロセス ID p
で示されたプロセスが終了するまで、読み出したスレッドの実行を停止させます。Unix.wait
と同じように、子プロセスの pid とその終了状態を返します。この関数は現在 MacOS では未実装です。val wait_signal : int list -> int
wait_signal sigs
は、sigs
のリストで示されるシグナルのどれか 1 つを受け取るまで、呼び出したスレッドの実行を停止させます。受け取ったシグナルの番号を返します。sigs
内のシグナルのシグナルハンドラは実行されません。複数のスレッドから同じシグナルを指定して wait_signal
を同時に呼び出すことはしないでください。val yield : unit -> unit