2

我有一些资源,我想保护它们免受同一进程中的线程和不同进程之间的并发使用。在 *nix 中“正确”的做法是什么?

例如,我们想从多线程应用程序中写入文件,该应用程序有时会分叉一些子进程。如何保证每个线程在一段时间内对文件有独占访问权?我正在寻找一个普遍的答案,而不是仅适用于写入文件的东西,因为它也可能是共享内存段等。

4

2 回答 2

1

太笼统的问题,所以笼统的回答。

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

您可能还想查看PTHREAD 锁定属性以查看您的平台是否支持共享语义。

于 2010-07-05T13:45:40.950 回答
0

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

于 2010-07-05T13:20:42.010 回答