当前位置: 移动技术网 > IT编程>软件设计>架构 > 多进程多线程

多进程多线程

2019年04月03日  | 移动技术网IT编程  | 我要评论

进程——操作系统资源分配的最小单位

线程——是操作系统cpu调度的最小单位

 

进程

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

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

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

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

线程

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

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

 

 

 

对比维度

多进程

多线程

总结

数据共享、同步

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

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

各有优势

内存、cpu

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

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

线程占优

创建销毁、切换

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

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

线程占优

编程、调试

编程简单,调试简单

编程复杂,调试复杂

进程占优

可靠性

进程间不会互相影响

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

进程占优

分布式

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

适应于多核分布式

进程占优

多进程多线程对比

()

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网