* nix系统范围的线程和进程互斥

时间:2010-07-05 13:17:06

标签: unix multithreading process mutex shared

我有一些资源可以防止同一进程中的线程和不同进程之间的并发使用。 在* nix中执行此操作的“正确”方式是什么?

E.g。我们想从多线程应用程序写入一个文件,这个应用程序偶尔会分配一些子进程。如何确保每个线程有一段时间独占访问该文件?我正在寻找一个通用的答案,而不仅仅是为了写一个文件,因为它也可能是一个共享的内存段等。

2 个答案:

答案 0 :(得分:1)

问题过于笼统,因此是一般答案。

最灵活的同步工具可能是POSIX semaphores。还有旧的和繁琐的SysV IPC信号量机制,您可能必须使用它,而不是平台支持。

您可能还想查看PTHREAD lock attributes以查看您的平台是否支持共享语义。

答案 1 :(得分:0)

如果资源是全局资源并且需要共享访问,则必须使用锁。如果它是线程本地的,请使用线程本地存储。如果它可以是本地的,请使用本地对象。