multithreading - 一个进程的线程并行执行
问题描述
我知道,线程存在于进程的边界:每个进程至少有1个线程,没有进程就不能存在线程;线程共享内存而进程不共享(没有特殊操作)等等。我们也可以通过让多个进程同时执行来加载 CPU 内核。但是我们可以一次执行同一个进程的多个线程(我的意思是真正的并行执行,而不是伪并行),如果可以的话,它是否比使用多个进程更好,为什么?谢谢你的答案!
解决方案
线程基本上是轻量级进程。操作系统线程可以并行执行,真正的并行执行只需要多个 CPU 内核。
与进程不同,线程具有较低的隔离性,因为它们共享内存并且可以互相破坏内存。好处是它们通常具有较少的元数据,并且创建起来更容易/更快,因此与进程相比,您可以同时运行更多的元数据。
推荐阅读
- .net-core - 如何在 mac/linux 上使用 NET Core 解析环境变量?
- symfony - Symfony 2 - 在生产中不返回 POST Json 自定义消息异常
- javascript - inDesign 脚本:在脚本文件中包含远程 .js 文件(并使用它的变量)
- php - JSON 到 XML - SimpleXMLElement 对象
- node.js - 连接mongodb远程服务器错误:UnhandledPromiseRejectionWarning
- c# - 在同级用户控件之间绑定属性
- angular - 如何在angular2中使用primeng单击添加按钮时获得空行
- javascript - 根据angularjs中的数组数据动态创建表单?
- angular - “ion-datetime”显示不正确的时间
- r - 返回索引而不是值的函数