module Binary:sig
..end
type
t
二元信号量的类型。
val make : bool -> t
make b
返回一个新的二元信号量。如果 b
为 true
,则信号量的初始值为 1,表示“可用”。如果 b
为 false
,则信号量的初始值为 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
。