问题: 但是读锁在加锁时候,并没有 给 readerWait加值,这里判断是否有效呢 ?写锁
如果不来写协程,那这个 readerWait 没有意义,因为这是判断是否释放写协程的。那有没有lock()被两个 写协程 先后连续执行,让 r 的值为一个很大的负数?
不会。因为要先去加 互斥锁。一个写协程加上后,其他的写协程只能去 sema中等待。上篇有讲过。 所以上面有一个举例的图其实是有问题的。小结加写锁:
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |