gpt4 book ai didi

c - Worker进程共享资源

转载 作者:行者123 更新时间:2023-11-30 15:46:12 25 4
gpt4 key购买 nike

我是 C 程序初学者,有一个关于工作进程之间的问题。
我编写了一个程序,它 fork 一个子进程,在该进程内,它创建 2 个线程来运行并从数据库获取一些值;但是,如果我 fork 2 个进程,它将总共创建 4 个线程

我想知道“外部变量”会在这两个进程中共享吗?还是独立?
如果变量不共享,如何维护进程之间的一致性?
(抱歉我的英语不好)

谢谢大家!!

最佳答案

当你 fork 一个进程时,父进程和子进程都有自己独立的地址空间,并且不能通过变量进行通信。当您在进程内启动两个线程(线程是轻量级进程)时,它们共享进程的地址空间并可以通过变量进行通信。

因此,在您的情况下,“外部变量”将被重复两次,并且您无法使用它们在进程之间进行通信。要同步两个进程,您需要使用 IPC(进程间通信)机制,例如用于存储的共享内存,可能与信号量耦合以防止并发访问。

关于c - Worker进程共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523780/

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