模块 Semaphore.Binary

module Binary: sig .. end

type t 

二元信号量的类型。

val make : bool -> t

make b 返回一个新的二元信号量。如果 btrue,则信号量的初始值为 1,表示“可用”。如果 bfalse,则信号量的初始值为 0,表示“不可用”。

val release : t -> unit

release s 将信号量 s 的值设置为 1,使其处于“可用”状态。如果其他线程正在等待 s,则其中一个线程将被重新启动。

val acquire : t -> unit

acquire s 阻塞调用线程,直到信号量 s 的值为 1(可用),然后将其原子地设置为 0 并返回。

val try_acquire : t -> bool

try_acquire s 如果信号量 s 的值为 0,则立即返回 false。如果 s 的值为 1,则其值将被原子地设置为 0,并且 try_acquire s 返回 true