gpt4 book ai didi

c - fork 和 exec 与锁定共享内存相关 - C

转载 作者:行者123 更新时间:2023-11-30 17:43:33 24 4
gpt4 key购买 nike

所以我只是想知道如果我有一个简单的并发任务要做,我该如何使用父进程中的 fork() 和 exec() 来处理多个进程,同时锁定父进程的某些方面'内存(这样它们就不会互相覆盖),但稍后将其提供给这些进程使用?

我知道我可以使用带有互斥锁的 POSIX 线程来完成此操作,但是相当于该过程的过程是什么?有没有办法在线程之间“锁定”共享内存?然后我是否必须“wait()”让其他线程完成这些锁定的内存区域,然后其他线程才能访问它?

最佳答案

如果您使用互斥锁的 pthreads 实现,您仍然会使用它们在进程之间进行同步...您会将它们放置在共享内存中。 Initializing a pthread mutex in shared memory解决这个问题。

您还可以使用简单的管道来同步访问 - 使用 token 预先填充管道,并需要成功读取 token 才能允许资源访问。然后将 token 写回到管道中以释放资源。

关于c - fork 和 exec 与锁定共享内存相关 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20222291/

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