进程和线程

进程

电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如QQ、酷狗播放器、电脑管家等等。

 

多个进程可以并发执行。从宏观上看,所有的进程都在被cpu执行,但是微观上去理解的话,在某一个时间点,cpu(单核)只能处理一个进程中的任务。

进程启动执行,系统会给该进程分配独立的资源供它自己使用。进程之间都拥有自己的系统资源,不共享系统资源

进程是系统进行资源分配的最小单位

 

线程

进程想要执行任务就需要依赖线程。换句话说,进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。

线程是进程中的一条任务线;进程中的一条完整的执行路径。进程中所有的任务,都是由进程中的线程来完成的。

1.线程不能独立存在,必须依赖于某一个进程。

2.进程中至少要包含一个线程,可以包含多个线程。进程中的第一个线程,可以称为主线程。

3.线程可以并发执行。

4.进程中的所有的功能代码都是由进程中的线程来执行的。

5.线程是cpu进行调度执行的最小单位。(实际的)

6.线程是抢夺cpu控制权的最小单位。(形象的)

7.一个进程中的线程会共享所在进程的所有资源。

 

多线程

提到多线程这里要说两个概念,就是串行和并行。

串行,其实是相对于单条线程来执行多个任务来说的。

在串行中它是按照一定的顺序去执行任务的的,也就是说,必须等执行完A之后才能开始执行B,它们在时间上是不可能发生重叠的。

并行:下载多个文件,开启多条线程,多个文件同时进行下载,这里是严格意义上的,在同一时刻发生的,并行在时间上是重叠的。

 

一个进程运行时产生了多个线程。

即使某一个线程被阻塞了,被阻塞的线程不会影响其他的线程,其他的线程的任务继续执行。

并发,并不是同时进行的,而是交替进行的,而由于CPU的运算速度非常的快,会造成我们的一种错觉----在同一时间内进行了多种事情。

并行,则是真正意义上的同时进行多种事情,这种只可以在多核CPU的基础下完成。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值