Java-可重入锁

来源:互联网 发布:小米平板2怎么连接网络 编辑:程序博客网 时间:2024/05/21 07:52

可重入:可以重复进入,可以重复进入的可以是同一个线程,可以是同一个进程,可以是不同线程,可以是不同进程。可以进入的对象的不同,产生不同的“可重入”机制;
java中讲的可重入锁,就是指的是同一个线程中可以多次获取同一个锁,而不会产生死锁。
Unix内核都是可重入的,指的是若干个进程可以同时在内核态下执行。

对于自旋锁来说,
1、若有同一线程两调用lock() ,会导致第二次调用lock位置进行自旋,产生了死锁
说明这个锁并不是可重入的。(在lock函数内,应验证线程是否为已经获得锁的线程)
2、若1问题已经解决,当unlock()第一次调用时,就已经将锁释放了。实际上不应释放锁。
(采用计数次进行统计)

参考:http://ifeve.com/java_lock_see4/

0 0
原创粉丝点击