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就是出来,这个锁就是可以反复的进入的,所以也就叫做重入锁。
网友评论