如何使用pthread_mutex重新解决此死锁情况

时间:2017-05-04 15:17:38

标签: c++ c linux pthreads mutex

我有一段受Mutex保护的代码

pthread_mutex_lock(&Mutex1);
write(fid,data_buffer,size);
pthread_mutex_unlock(&Mutex1);

最多可以调用两个函数:func1()func2()。但是,互斥锁write()可能并不总是返回 - 即它在某些条件下等待它返回之前发生。因此,如果func1()调用write()并且未返回,则互斥锁永远不会被解锁,func2()永远无法调用write()。如果write()永远不会返回以避免这种死锁,有没有办法强制释放互斥锁?也许除了互斥之外还有其他选择吗?

由于

0 个答案:

没有答案