线程与进程

                                                          线程与进程

1. 进程定义:

一个具有一定功能的程序在一个数据集合上的一次动态执行过程。

2. 线程定义:

更小的独立运行的单位,是进程中的一条执行流程。

3. 进程和线程区别:

[1]     根本区别:进程是资源分配最小单位,线程是程序执行的最小单位

[2]     在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,线程共享代码和数据空间,每个线程都有自己独立的运行栈(局部变量)和程序计数器(PC),线程之间切换的开销小。

[3]     包含关系:个线程只能属于一个进程,一个进程可以拥有多个线程。

[4]     线程之间通信更方便:线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(管道,文件,消息队列,信号量,共享内存,套接字)进行;(但多线程程序处理好同步与互斥是个难点)

[5]     安全:多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉,整个进程就死掉了(因为共享地址空间);

 

posted @ 2019-08-17 21:47  行走的算法  阅读(146)  评论(0编辑  收藏  举报