关于wait和notify/lock的心得

2019-07-28  本文已影响0人  华木公子

一 使用注意

wait和notify必须在获取锁的情况下才能适用,否则会抛非法监控异常;
所以代码块必须在 synchronized 的执行体中执行才行。

二 使用的方式

wait就是为了说明当前线程后续逻辑先不执行,需要等待其他线程执行后再执行。
wait和notify成对出现,表明当前线程执行完后需要通知其他线程来执行。

三 reentantlock 的使用

lock和unlock对应于synchronized,只是更为灵活。
tryLock尝试获取锁;
tryLock(long)尝试一定时间内获取锁;
condition.await() 用法于 wait 相同;
condition.signal() 用法与 notify相同;

四 reentrantLockReadWriteLock 的用法

主要是用于读写逻辑分开的场景,读写分开就会存在多线程并发读,并发写,并发读写。因此分别用readLock和writeLock可以更细粒度的控制多线程并发读写

上一篇下一篇

猜你喜欢

热点阅读