gpt4 book ai didi

linux - 如何同步两个进程访问相同的资源?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:29 25 4
gpt4 key购买 nike

我有两个进程访问相同的物理内存(GPIO 数据地址)。那么我怎样才能在这些应用程序之间进行同步呢?我知道我们有某种锁定机制,例如互斥量和信号量,那么哪种方法最快?

感谢您的帮助,

-纳米

最佳答案

互斥锁和信号量通常被认为是同一地址空间中的并发解决方案——这意味着同一程序的不同部分将使用这些装置之一锁定它们对资源的访问。

当您处理单独的进程时,在 Linux 上执行此操作的标准方法是在 /var/lock 中创建一些内容,例如 /var/lock/myapp.lockplace your PID followed by a newline in it .然后其他进程将检查它是否存在,如果你很狡猾,请检查 PID 以确保它也仍然存在。

如果您需要实时访问该区域,请跳过文件系统,进程将必须通过 IPC 进行通信(LET_ME_KNOW_WHEN_DONEOKAY_IM_DONE,您明白了) ,或者 - 更好 - 编写一个进程,其唯一目的是读取和写入 GPIO 内存,而您的其他程序通过 IPC(可能是最佳方法)与通信。

关于linux - 如何同步两个进程访问相同的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com