进程与线程的区别?
进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。
一个程序至少有一个进程,一个进程至少有一个线程。
or
进程-占有资源的最小单元
线程-调度运算的最小单元
首先要理解什么是资源?
资源可以是设备/端口/文件/内存,那么进程和资源的关系,通俗的讲,就是
进程和资源——插头与插座
(后来的插头排队等这个已经插入的插头)
一个进程可能包含多个线程
一个进程的内存空间是共享的,每个线程都可以使用这些共享内存
可以理解成一个或多个线程组成了一个进程(如图所示)
在线看视频 其实是 一边从网上下载 一边用播放器播放,从进程来讲就一个(咱们打开的网页) , 其中
下载由一个线程管理,
播放由一个线程管理。
解释了线程为什么是调度运算的最小单元。(通俗的讲,线程是让CPU执行一段操作的最小单位)
[在编程的时候,相当于你把一段程序,分配了出去给了另一个线程,你的目的是实现并行处理以减少时间]
一般情况下,当QQ进程占用了摄像头资源后,
别的进程无法使用摄像头,
这就解释了为什么进程是占有资源的最小单元。
于是你就会发现,当你想同时和两个QQ好友视频通话的时候,发现了『邀请多人视频通话』的选项,这也是解决方案之一。
一个进程与一个程序对应,但是一个程序可以有多个进程
比如,你打开两个PowerPoint
Microsoft PowerPoint(2)该程序下面的两个进程(一个程序可以有多个进程)。
总结:一个程序可以有多个进程,一个进程可以有多个线程。