gpt4 book ai didi

c - 何时使用多线程与多处理

转载 作者:行者123 更新时间:2023-12-03 12:51:44 26 4
gpt4 key购买 nike

我想看到一些例子。我知道它们之间的区别(相同的 PID、相同的线程虚拟地址等)。

例如,使用相同的地址是否会限制线程的使用或功能?或者相反,它是否使多处理功能更强大但效率更低?

最佳答案

线程的主要优点是 如果 他们需要共享数据,除了正确的同步之外别无他法(因为它们之间共享地址空间)。

相反,如果 某些进程需要共享数据,必须明确设置通信方式(共享内存段、管道、本地套接字……),其使用通常意味着复制数据(即,地址空间_1 --> 共享段 --> 地址空间_2,
甚至 address_space_1 --[pipe]--> 内核内存 --[pipe]--> address_space_2)。
这些副本可能是性能瓶颈(取决于应用程序上下文)。

但是进程优于线程的一个优点是,如果一个进程被杀死,其他进程可以继续工作(假设它们之间的通信协议(protocol)足够健壮)。

很久以前可能有人说过,线程调度可能比进程调度更有效,但现在不是这样了(它可能与用户空间线程有关,而不是内核线程)。

关于c - 何时使用多线程与多处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57089560/

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