首页 > 代码库 > java 锁的分类

java 锁的分类

  java中为了解决多线程并发带来的线程安全问题,引入了锁机制。

     java的加锁机制,可粗略分为两种:

  1.内置锁。

  什么是内置锁?把一个对象用作实现同步的锁,这样的锁就是内置锁。这是基于互斥的思想来实现的锁,即只有一个线程可以持有某一个锁。

  显然这样做可以保证线程安全,但是性能方面不那么友好。比如直接将某个方法声明为synchronized。

  2.重入锁。

  重入锁是指当一个线程获取已经由它自己持有的锁,就会成功,这样意味着锁操作的粒度由 调用 降低到了 线程,如何实现这种机制呢,可以采用程序计数器法。

  重入锁,降低了锁操作的粒度,大幅提升了性能。比如java并发包下的ReentrantLock 。当然它也可以解决线程死锁的问题。

java 锁的分类