- 2
- 0
- 约8.19千字
- 约 8页
- 2017-07-23 发布于湖北
- 举报
深入理解Semaphore概要1
深入理解Semaphore
使用
Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可证,这可能会释放一个阻塞的acquire方法。然而,其实并没有实际的许可证这个对象,Semaphore只是维持了一个可获得许可证的数量。
Semaphore经常用于限制获取某种资源的线程数量。下面举个例子,比如说操场上有5个跑道,一个跑道一次只能有一个学生在上面跑步,一旦所有跑道在使用,那么后面的学生就需要等待,直到有一个学生不跑了,下面是这个例子:
/**
* 操场,有5个跑道
* Created by Xingfeng on 2016-12-09.
*/
public class Playground {
/**
* 跑道类
*/
static class Track {
private int num;
public Track(int num) {
this.num = num;
}
@Override
public String toString() {
return Track{ +
原创力文档

文档评论(0)