情境如下:
我要删除档案系统上一个最旧的大型档案但同时需要写入新的档案
目前是用Mutex保护要删除的档案,等删除完成后再继续写入新档案
(因为还有很多条Thread在跑,怕误用该最旧的档案所以要保护)
理论上Mutex是不能锁住长时间的
要避免deadlock
但是因为该档案太大所以造成删除的时间过长
另一条Thread要写入新档案就被block住
请问有何解法可以同时保护Critical Section但是仍可以让OS做Context Switch
来达成避免写入的Thread被删档案的Thread block住的问题