issues
search
johncming
/
go-spec
my wiki
Apache License 2.0
0
stars
0
forks
source link
Condition Variables
#23
Closed
johncming
closed
5 years ago
johncming
commented
6 years ago
两种表述
条件变量
monitor
johncming
commented
6 years ago
condition必须关联一个mutex
两个基本操作
Signal
Wait
wait
unlock mutex
阻塞当前goroutine
signal
lock mutex
通知blocked的goroutine
第三个操作:broadcast
johncming
commented
6 years ago
伪唤醒
全部唤醒,也只有一个进行读取
signal的goroutine没准备运行
johncming
commented
6 years ago
Forgotten signals
主动放弃signal,容易导致一些事件不能被及时处理
有时候忘写了
johncming
commented
6 years ago
Starvation
GetMany(3000)被唤醒,发现3个还是少,继续wait去了
饥饿两个意思:
吃不上
吃不饱
johncming
commented
6 years ago
Unresponsive cancellation
被cond.wait了,如果这个时候context要cancel,咋办,没办法,只能等唤醒后才行
johncming
commented
6 years ago
cond的本质,是一个thread等待一个事件发生,但是这其中真是好多坑
cond的本质,是共享内存
两种表述