因为它只是接口,所以我们需要找到它的实现类,下面重点给大家介绍ReentrantLock,它也是我们工作中常用的
ReentrantLock它是一种可重入互斥Lock ,其基本行为和语义与使用synchronized方法和语句访问的隐式监视器锁相同,但具有扩展功能。
说了这么多,还没带大家体验一把,下面我们就是来个例子试一下。
我们发现无论执行多少次结果都是和预期的一样,都是0,我们再看下tryLock,直接改写reduce:
通过上面的使用,我们来和Synchronized做一个对比。
表面上一个是关键字,一个是类。使用上,Synchronized隐式,而Lock需要显示,对代码要求比较高,如果忘了释放锁可能会导致死锁。Lock提供了tryLock方法,使得程序更加灵活。代码表现上Lock更加的灵活,可以在不同的方法中执行。 结束语本节主要讲了它的基本使用,大家可以举一反三,试试什么条件下会导致死锁。
到此这篇关于Java多线程中Lock锁的使用小结的文章就介绍到这了,更多相关java lock锁使用内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!