我开始学习Java中的信号量,并阅读了这篇文章http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html。唯一让我困惑的是为什么acquire()方法不在同步上下文中使用。看看上面网站的例子:
他们创建了一个信号量:
并像这样获得许可证:
他们创建了一个信号量:
private Semaphore semaphore = new Semaphore(100);
并像这样获得许可证:
semaphore.acquire();
现在,是否有可能两个或多个线程同时尝试使用acquire()方法?如果是这样,计数会有一些小问题。
或者,信号量本身处理同步吗?