关于用信号量Semaphore实现互斥锁Mutex(2)

2008-02-23 09:10:50来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

public boolean attempt(int ms) throws InterruptedException {
return s.tryAcquire(ms);
}

}


上面的代码只能在java5中编译通过,因为Semaphore是在java5中才提供的。我在读上面的代码时有疑问。因为如果错误的连续调用release两次,然后两个线程都调用acquire,岂不是这两个线程都可以同时运行,从而违背了互斥锁的定义?为了证明我的猜测,写了如下的代码:

public class TestMutex {
public static void main(String[] args) throws InterruptedException{
Mutex mutex
=new Mutex();
mutex.acquire();
mutex.release();
mutex.release();

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Object类学习总结

下一篇:Liferay Portal额外研究(一):初步在新Tomcat下部署