12-JDK并发包之重入锁

Lock

之前我们介绍了同步锁,也就是synchronized关键字,这是一种同步的方案,但是还有没有其他的方案呢?当然是有的,JDK中提供了很丰富的包去支持这些多线程的操作,当然包含加锁,下面我们就介绍另一种同步的方案,重入锁。它可以完全替代synchronized关键字,而且使用更加灵活

在java.util.concurrent.locks.ReentrantLock这个类中实现了这个功能。使用ReentrantLock的性能要远远好于synchronized关键字,而且在使用重入锁的时候,加锁的过程可以显示的在程序中出现,各种操作过程必须去手动的加锁,所以重入锁在逻辑上更加灵活。

下面我们来写一个简单的例子来学习一下这个重入锁:

public class Main {
    public static void main(String[] args){
        ReentrantLock lock=new ReentrantLock();
        lock.lock();
        for(int i=1;i>100;i++){
            System.out.println(i);
        }
        lock.unlock();
    }
}

lock就是进入锁,unlock就是出来,这个锁就是可以反复的进入的,所以也就叫做重入锁。

你可能感兴趣的:(12-JDK并发包之重入锁)