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

标签 unix multithreading process mutex shared

我有一些资源想要保护同一进程和不同进程之间的线程并发使用。
在* nix中执行此操作的“正确”方法是什么?

例如。我们想从多线程应用程序写入文件,该应用程序偶尔会 fork 一些子进程。如何确保每个线程在一段时间内对文件具有独占访问权?我正在寻找一个一般性的答案,而不是仅适用于写入文件的内容,因为它也可能是共享内存段等。

最佳答案

一个问题太笼统,因此一个笼统的答案。

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

您可能还需要研究PTHREAD lock attributes,以查看您的平台是否支持共享语义。

关于unix - * nix系统范围的线程和进程互斥体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179763/

相关文章:

java - 如何从Java代码运行Linux程序

Windows:具有重定向输入和输出的子进程

c - 我如何(递归地?)使用 inotify 监视新目录的内容?

iphone - 下载项目时更新 TableView

c# - 具有大列表的并行 Foreach 抛出异常

c# - 什么线程在 silverlight WCF 调用中调用完成的事件处理程序?

linux - 如何防止我的 C 程序在按下 CTRL-C 时终止?

bash - 如何为终端创建新的 unix 可执行文件 (.sh?) 以用作命令?

linux - 使用 cat 和 tee 添加文件时的奇怪行为

php - 如何在 Linux 中检查文件编码?处理多语言脚本