MESA管程模型
2023-09-01 00:30:08 0 举报
MESA管程模型
作者其他创作
大纲/内容
条件变量B
MESA管程模型
共享变量
方法X
wait()notify()notifyAll()
1.共享变量是否加锁 state 1 --加锁 0 --未加锁 (通过CAS实现) 2. 入口等待队列竞争锁失败的线程,进入等待队列 3.等待唤醒机制(不使用)synchronized + Object.wait/notify/notifyAll 无法指定唤醒哪一个线程ReentrantLock + Condition.await/signal/signalAll 4.唤醒指定线程(使用)LockSupport.park()/unpark(Thread)抽象类:队列操作,入队出队、CAS操作。
方法Y
条件变量和等待队列
条件变量A
解决线程的同步问题
入口等待队列
基于管程模型实现一把独占锁
多个线程进入时,只允许一个进入,其余排队等待
0 条评论
下一页