进程与线程

进程和线程的区别?

1.调度:进程是资源调度单位,线程是CPU调度单位。

2.资源分配:进程间拥有独立的系统内存单元;同一进程内的线程间共享进程内存空间,且线程不拥有系统资源,只各自拥有运行时必要的寄存器与栈(空间很小)。

3.健壮性:进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径,线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮。

4.系统开销:线程能减少并发执行时的时间和空间开销。由于在创建或撤消进程时,系统都要为之分配或回收资源,因此,操作系统所付出的开销将显著地大于在创建或撤消线程时的开销。 进程切换的开销也远大于线程切换的开销。且由于同一进程的各线程间共享内存与文件资源,可以不通过内核直接进行通信。

5.并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。

其他知识点

1.进程并发采用 “时间片轮转进程调度算法”。
2.线程与进程一样,也具有三种状态,运行态、就绪态、阻塞态,并且转化关系也一样。
3.对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
4.进程间通信主要包括管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET。
5.进程/线程间同步机制:临界区、互斥区、事件、信号量四种方式。
6.进程/线程同步机制与进程间通信机制比较:很明显2者有类似,但是差别很大。
同步主要是临界区、互斥、信号量、事件;
进程间通信是管道、内存共享、消息队列、信号量、socket;
共通之处是:信号量和消息(事件)。

参考文章:

进程与线程的一个简单解释

腾讯面试题04.进程和线程的区别?

操作系统——进程、线程、调度

进程和线程有什么区别?

进程/线程同步的方式和机制,进程间通信

多线程还是多进程的选择及区别

你可能感兴趣的:(进程与线程)