通常只使用一个互斥锁来同步多个资源吗?

时间:2015-10-31 19:29:31

标签: synchronization locking pthreads mutex deadlock

我正在编写一个使用pthread互斥锁的应用程序。有部分负责不同的工作,一部分用于写入文件(文件描述符资源),第二部分用于处理队列(队列变量),第三部分用于处理计时器(计时器变量)等。从这个角度来看是将不同的互斥体用于不同的工作是否正确?

1 个答案:

答案 0 :(得分:0)

让我清楚 Mutex - :"互斥锁通常用于序列化对一部分重入代码的访问,这些代码不能由多个线程同时执行。互斥对象只允许一个线程进入受控部分,强制其他尝试访问该部分的线程等到第一个线程退出该部分。"

  

通常的做法是只使用一个互斥锁进行同步   一个资源?

这完全取决于您的申请。如果这些资源是依赖的,并且您无法并行执行,那么它是正常的。

  

从这个角度来看,使用不同的互斥体是正确的   不同的工作?

是的,您应该使用不同的互斥锁,这样您就可以同时执行不同的任务。因为在这种情况下,工作彼此不同。