打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
多进程多线程

进程

进程产生由来:计算机一次只能执行一个任务,如果某个任务需要从I/O设备读取大量数据,此I/O操作过程中CPU是空闲的,可以用来进行其他操作。因此发明了进程,用进程来对应一个任务。

进程的特点:每个进程有独立的内存空间,进程间互不相关,由操作系统来进行调度。

多进程并行:当时CPU还没有多核、多线程的概念,为了达到多进程并行运行的目的,采用了分时的方式,即把CPU的时间分成很多片段,每个片段只能执行某个进程中的指令。虽然从操作系统和CPU的角度来说还是串行处理的,但是由于CPU的处理速度很快,从用户的角度感觉像是多进程并行处理。

进程间通信:由于每个进程有独立的内存空间,进程间互不相关,但是有时候希望两个进程之间能够进行通信。如果不能通信只能是A存储到磁盘,B需要数据再从磁盘读取,效率低且设计复杂。为了解决进程间通信的问题,设计出了包括管道、消息队列、信号量、共享存储等各种方式。

线程

线程产生由来:多进程能让多任务并行处理,但是单个进程内部只能串行处理。实际上进程内部的各个子任务并不要求严格按照时间顺序来执行,也需要并行处理。因此发明了线程。

线程的特点:线程是进程内部的子任务,共享一份进程数据。为了保证共享数据的准确性,又发明了互斥锁机制。

对比维度

多进程

多线程

总结

数据共享、同步

数据共享复杂,需要用IPC;数据是分开的,同步简单

因为共享进程数据,数据共享简单,但也是因为这个原因导致同步复杂

各有优势

内存、CPU

占用内存多,切换复杂,CPU利用率低

占用内存少,切换简单,CPU利用率高

线程占优

创建销毁、切换

创建销毁、切换复杂,速度慢

创建销毁、切换简单,速度很快

线程占优

编程、调试

编程简单,调试简单

编程复杂,调试复杂

进程占优

可靠性

进程间不会互相影响

一个线程挂掉将导致整个进程挂掉

进程占优

分布式

适应于多核、多机分布式;如果一台机器不够,扩展到多台机器比较简单

适应于多核分布式

进程占优

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
高性能服务器架构思路【不仅是思路】
高性能服务器架构思路(三)
【并行计算】
多线程
想要做到高并发和高性能,请先真正的理解它们
多线程——并发和并行的概念总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服