可重入锁

来源:互联网 发布:mac 10.10.5 安装 编辑:程序博客网 时间:2024/05/21 19:32
可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。

在JAVA环境下 ReentrantLock 和synchronized 都是 可重入锁,之所以设计成可重入锁是为了避免死锁

package com.mercurylake.test.lock;import java.util.concurrent.locks.ReentrantLock;public class TL {ReentrantLock rt=new ReentrantLock();public static void main(String[] args) {TL t=new TL();t.a();}public void a(){rt.lock();try{System.out.println("a..begin");b();System.out.println("a..end");}finally{rt.unlock();}}public void b(){rt.lock();try{System.out.println("b..begin");System.out.println("b..end");}finally{rt.unlock();}}}
输出结果:a..begin;b..begin;b..end;a..end

0 0
原创粉丝点击