300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux中多进程和多线程的区别是什么

linux中多进程和多线程的区别是什么

时间:2020-12-23 05:50:16

相关推荐

linux中多进程和多线程的区别是什么

运维|linux运维

linux,多进程,多线程

运维-linux运维

博客源码,ubuntu安装时黑屏,用爬虫抢购商品,php墙,seo待遇怎样lzw

运行环境:linux5.9.8系统、Dell G3电脑。

圆形按钮源码变色,ubuntu16.04扩容,开源的主题爬虫,php框架思路,谷歌seo描述lzw

linux中多进程和多线程的区别

商城源码 app源码,用vscode开发iOS,ubuntu中国yuan,tomcat服务开不了,sqlite3中文汉化,爬虫lua,php 今日头条,铁岭seo推广如何收费,上传网站安装教程视频,dw怎么导入网站模板lzw

进程:运行中(加载到内存上)的程序。–>执行过程称之为进程。

线程:线程是轻量级的进程,是进程中的一条执行序列(一组有序指令),一个进程至少有一条线程。

main函数所代表的执行序列称之为主线程。通过线程库创建的线程称之为函数线程。

多线程的优点:

无需跨进程边界;

程序逻辑和控制方式简单;

所有线程可以直接共享内存和变量;

线程方式消耗的总资源比进程少

多进程的优点 :

每个进程相互独立,不影响主程序的稳定性,子进程崩溃没关系;

通过增加CPU就可以容易扩充性能;

可以尽量减少线程加锁/解锁的影响,极大提高性能;

多线程的缺点:

每条线程与主程序共用地址空间,大小受限;

线程之间的同步和加锁比较麻烦;

一个线程的崩溃可能影响到整个程序的稳定性;

到达一定的线程数后,即使在增加CPU也无法提高性能;

多进程的缺点:

逻辑控制复杂,需要和主程序交互;

需要跨进程边界,如果有大数据传输,不适合;

多进程调度开销比较大

应用情况如下:

1)需要频繁创建销毁的用线程

这种原则最常见的就是Web服务器了,来一个连接建立一个线程,断了就销毁线程。如果用进程,创建销毁的代价是很难承受的。

2)需要进行大量计算的优先用线程

所谓大量计算就是消耗很多CPU,切换频繁,这种情况下线程是最合适的。

这种原则最常用的就是图像处理,算法处理。

3)强相关的处理用线程,弱相关的处理用进程

什么叫强相关、弱相关?理论上很难定义,举一个例子加以解释。

一般的Server需要完成如下任务:消息收发、消息处理。“消息收发”、“消息处理”就是弱相关的处理,而“消息处理”里面又分为“消息解码”、“业务处理”,这两个业务相对来说就强很多。因此“消息收发”、“消息处理”可以分进程设计,“消息解码”、“业务处理”可以分线程设计。

4)可能扩展到多机分布的用进程,多核分布的用线程(具体原因请看上表)

消耗资源:

从内核的观点看,进程的目的就是担任分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一条执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

线程,他们之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且线程间彼此切换所需要的时间也远远小于进程间切换所用的时间。

通讯方式:

进程间传递数据只能通过通讯的方式,既费时又不方便。线程时间数据大部分共享,快捷方便,但是数据同步需要锁。

线程自身优势:

提高应用程序相应;使用CPU系统更加有效;操作系统会保证当线程数目不大于CPU数目时候,不同的线程运行在不同的CPU上;改善程序结构,一个即长又复杂的进程可以考虑分为多个线程,成为几个独立或者半独立的部分,这样的程序会易于理解和修改。

《Linux视频教学》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。