[linux] 多进程和多线程
2023-02-18 15:47:06 时间
1.在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种”昂贵”的多任务工作方式。
2.而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间
3.根本区别就一点:用多进程每个进程有自己的地址空间(address space),线程则共享地址空间。所有其它区别都是由此而来的:
1)速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2)资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
3)同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一个地址空间内。
多线程共享地址空间
相关文章
- 《前端运维》一、Linux基础--11服务
- 《前端运维》一、Linux基础--10定时任务
- 《前端运维》一、Linux基础--08Shell其他及补充
- 《前端运维》一、Linux基础--09常用软件安装
- 《前端运维》一、Linux基础--07Shell函数
- 《前端运维》一、Linux基础--06Shell流程控制
- 《前端运维》一、Linux基础--05Shell运算符
- 《前端运维》一、Linux基础--04Shell变量
- 《前端运维》一、Linux基础--03Shell基础及补充
- 《前端运维》一、Linux基础--02用户与权限
- 《前端运维》一、Linux基础--01基础命令与vim
- ARM嵌入式跟踪缓冲器技术参考手册
- MongoDB(4)- MongoDB与Python的交互
- MongoDB(3)- 数据的导入导出
- MongoDB(2)- MongoDB的基本操作
- MongoDB(1)- MongoDB数据库介绍与安装
- Linux(六):系统运维常用命令
- Linux(五):Linux的文档编辑器Vi
- Linux(四):Linux的打包和压缩详解
- Linux(三):Linux的目录及相关作用