[linux] 多进程和多线程
2023-02-18 15:41:33 时间
1.在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种”昂贵”的多任务工作方式。
2.而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间
3.根本区别就一点:用多进程每个进程有自己的地址空间(address space),线程则共享地址空间。所有其它区别都是由此而来的:
1)速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2)资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
3)同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一个地址空间内。
多线程共享地址空间
相关文章
- 实践GoF的设计模式:迭代器模式
- 【补充】Gitlab 部署 CI 持续集成
- Google Chrome 应用商店上传扩展程序
- 实践GoF的23种设计模式:观察者模式
- Ubuntu Docker 安装和配置 GitLab CI 持续集成
- Ubuntu 简单安装和配置 GitLab
- 二进制SCA指纹提取黑科技:Go语言逆向技术
- 解读Go分布式链路追踪实现原理
- 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
- 基于C#的MongoDB数据库开发应用(3)--MongoDB数据库的C#开发之异步接口
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
- Linux 常用命令(持续补充)
- 云小课|3种常用Git工作流推荐
- 实践GoF的23种设计模式:装饰者模式
- git bisect:让你闭眼都能定位疑难 bug的利器
- 通用权限管理系统多语言开发标准接口 - java,php 调用标准接口程序参考
- 收到Sybase公司PowerDesigner产品的律师函后,只能改进一下思路了
- 实践GoF的设计模式:工厂方法模式
- 有了这10个GitHub仓库,开发者如同buff加持
- 【clickhouse专栏】对标mongodb存储类JSON数据文档统计分析