加锁的方式

一.Java多线程可以通过:

  1. synchronized关键字

  2. Java.util.concurrent包中的lock接口和ReentrantLock实现类

这两种方式实现加锁。

对比:
 1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问;

2)Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用;而Lock则必须要用户去手动释放锁,如果没有主动释放锁,就有可能导致出现死锁现象。

你可能感兴趣的:(加锁的方式)