【发布时间】:2014-01-13 17:51:45
【问题描述】:
在objc.io Issue 2作者用阅读和写作谈饥饿问题:
就在您认为有足够多的问题需要考虑的时候,一个新的问题就出现了。锁定共享资源会导致读写器问题。在许多情况下,将对资源的读取访问限制为一次访问是一种浪费。因此,只要资源上没有写锁,就可以使用读锁。在这种情况下,等待获取写锁的线程可能会被同时发生的更多读锁饿死。
我假设一个读锁只允许锁定它的东西读取值,而所有其他人都不能访问它?我知道只有在没有写锁的情况下才能读锁(因为值可能会发生变化),但是在它使用的方式上,它似乎暗示“只有在没有写锁的情况下才允许读锁”被用作效率/不浪费的手段。读锁和浪费有什么关系?
另外,谁能解释一下最后一句是什么意思?我不明白读锁会产生什么影响,或者读锁会打开什么。
【问题讨论】:
-
引用的英文有点不太清楚。 “在这种情况下……”大概应该改成“这(指上一句)防止……”。
标签: multithreading