8.17ReentrantLock(可重入锁)

1.

2.ReentrantLock对比synchronized的优势

a.提供了一个tryLock方法加锁,对于lock操作,如果加锁不成功,会阻塞等待(死等),对于tryLock操作,如果加锁不成功,会返回false,可以设定等待时间.

b.使用构造方法设置参数来选择公平锁和非公平锁.

c. 也具有等待通知机制,搭配Condition类完成,功能更强大,可以唤醒指定线程.

3.ReentrantLock对比synchronized的劣势

a.unlock容易遗漏,建议搭配finally来使用.

b.synchronized锁对象是任意对象,ReentrantLock锁对象是锁本身,多个线程针对不同的ReentrantLock调用lock方法不会发生锁竞争.

c.没有自动优化的机制.

4.实际开发中,首选synchronized.

猜你喜欢

转载自blog.csdn.net/m0_73345579/article/details/132140388