我有一些资源想要保护同一进程和不同进程之间的线程并发使用。
在* nix中执行此操作的“正确”方法是什么?
例如。我们想从多线程应用程序写入文件,该应用程序偶尔会 fork 一些子进程。如何确保每个线程在一段时间内对文件具有独占访问权?我正在寻找一个一般性的答案,而不是仅适用于写入文件的内容,因为它也可能是共享内存段等。
最佳答案
一个问题太笼统,因此一个笼统的答案。
最灵活的同步工具可能是POSIX semaphores。还有旧的,麻烦的SysV IPC信号量机制,取决于平台支持,您可能不得不使用它。
您可能还需要研究PTHREAD lock attributes,以查看您的平台是否支持共享语义。
关于unix - * nix系统范围的线程和进程互斥体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179763/