作者NIAZ (扁鱼)
看板Programming
标题[问题] Mutex long time lock问题
时间Wed Apr 22 18:17:16 2015
情境如下:
我要删除档案系统上一个最旧的大型档案但同时需要写入新的档案
目前是用Mutex保护要删除的档案,等删除完成後再继续写入新档案
(因为还有很多条Thread在跑,怕误用该最旧的档案所以要保护)
理论上Mutex是不能锁住长时间的
要避免deadlock
但是因为该档案太大所以造成删除的时间过长
另一条Thread要写入新档案就被block住
请问有何解法可以同时保护Critical Section但是仍可以让OS做Context Switch
来达成避免写入的Thread被删档案的Thread block住的问题
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.130.190.34
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1429697839.A.2DC.html
※ NIAZ:转录至看板 C_and_CPP 04/22 18:25
1F:→ longhairpan: 先 rename, 再删档,连 mutex都省了.. 1.171.70.92 05/28 15:00