加锁的方式
2018-04-08 本文已影响0人
hhws
一.Java多线程可以通过:
-
synchronized关键字
-
Java.util.concurrent包中的lock接口和ReentrantLock实现类
这两种方式实现加锁。
对比:
1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问;
2)Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用;而Lock则必须要用户去手动释放锁,如果没有主动释放锁,就有可能导致出现死锁现象。