模块 Stdlib.Mutex

module Mutex: Mutex

type t 

互斥锁的类型。

val create : unit -> t

返回一个新的互斥锁。

val lock : t -> unit

锁定给定的互斥锁。任何时候只有一个线程可以拥有互斥锁。尝试锁定已被其他线程锁定的互斥锁的线程将挂起,直到其他线程解锁该互斥锁。

val try_lock : t -> bool

Mutex.lock 相同,但如果互斥锁已被锁定则不会挂起调用线程:在这种情况下立即返回 false。如果互斥锁未锁定,则锁定它并返回 true

val unlock : t -> unit

解锁给定的互斥锁。其他线程挂起尝试锁定互斥锁将重新启动。互斥锁必须之前已被调用 Mutex.unlock 的线程锁定。

val protect : t -> (unit -> 'a) -> 'a

protect mutex f 在一个临界区运行 f(),其中 mutex 被锁定(使用 Mutex.lock);然后它负责释放 mutex,无论 f() 返回了一个值还是抛出了一个异常。

解锁操作保证始终发生,即使在某些信号处理程序中引发异步异常(例如 Sys.Break) 的情况下。