信号量,信号量,它保留了一系列许可(许可)。访问()的每个呼叫都将享受许可证。每个呼叫()将返回许可证。
信号量可用于控制同时访问共享资源的访问次数,这通常是这样说的。
首先,简单地了解通过一个小例子使用信号量的使用
这里创建了三个线程,但是信号量仅设置了两个许可证。因此,只有两个将同时获得执行权限,其余一个将等待执行许可执行许可。
分类
信号量包含同步器同步,其两个子类Fairsync和nonfairsync,这表明信号量也是公平模式和非fair模式。
信号量构造方法
从源代码可以看出默认值为非fair模型。如果要实现公平模式,则将在构造函数中传递。
静态内部类同步源代码
可以通过同步类的源代码知道
获取方法获得许可证
这是公平模式的示例。获取方法用于获得许可。如果您没有获得许可证,则将添加阻塞队列等待。实际上,详细介绍了源代码中的大多数方法,因此在这里,因此此处的解释不会太详细。
发布方法发布许可证
发布方法是做两件事,它们将释放许可证,然后唤醒等待线程(只有一个唤醒)
总结