gpt4 book ai didi

c - fork() 和 pthread_create 对 VSZ 的影响

转载 作者:行者123 更新时间:2023-11-30 18:14:04 25 4
gpt4 key购买 nike

我正在开发一个用 C 语言编写的嵌入式 http 服务器,该服务器最初使用 fork() 来处理每个客户端请求。我将其切换为使用 pthread_create 而不是 fork()。

在对比 fork() 和线程版本的内存使用情况时,我观察到顶部列出的 %VSZ 利用率发生了变化。 fork() 版本报告的 %VSZ 高于 pthread_create() 版本。

任何人都可以解释为什么会出现此更改,因为据我认为我所做的所有更改都与创建线程有关。我无法确定它如何改变进程的虚拟内存大小。

最佳答案

基本上,fork()创建另一个进程,这意味着它会被分配自己的内存空间,这意味着您会乘以所使用的内存。

另一方面,线程与创建它的进程共享其内存空间,因此您的内存使用量会小得多,但如果您从多个线程访问同一变量,则必须担心竞争条件和死锁。 (除非您使用共享内存结构,否则进程不会发生这种情况)

关于c - fork() 和 pthread_create 对 VSZ 的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19489808/

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