1 概念
1.1 进程概念
进程是计算机系统的一套资源,资源包括cpu、内存、IO等,一个计算机可管理的单位,都有独立的堆栈,这也为什么是资源管理器中看到进程。
1.2 线程概念
线程是进程开的一个个干活单位。
操作系统开一个线程比开一个进程速度快10-100
倍,
1.3 进程和线程类比
进程
在单位中生成团队,企业生产不同的产品时,肯定会有不同的团场,当然也有可能 生产同一款产品时,也会有多个团队,而这些团队就相当于进程,因为这些团队都拥有企业相对独立的生产资源。
线程
团队中具体干活的肯定是一线工作人员,这些工作人员又由团队领导协调调度,如某一个团队10个人,这10个人中有1个领导,9个员工,在线程中就相当于1个主线程,9个普通线程。
1.4 线程工作的状态
现在这个团队接到任务,生产某个产品,但是生产产品肯定会用到流水线上的工具,一上班这10个人就处于就绪
状态,处于就绪状态的员工就准备接受任务,当接受的任务就处于运行
状态,也就是正在干活的状态,但是某些员工发现自己没有某些工具时,只能处于阻塞
停止干活阶段,但是一旦获取到工具时,就重新排队领取任务指标,如果说没有任务了,最后线程终止
,员工们就下班吧。
2 进程模块
2.1 进程类init方法
在init方法中的含义,含义的具体含义如下:
参数名 | 含义 |
---|---|
target | 线程调用的对象,就是目标函数 |
name | 为线程起个名字 |
args | 为目标函数传递实参,注意要传入的是元组 |
kwargs | 为目标函数关键字传参,字典 |
2.2 线程的启动
线程的启动,在进程模块中可以看到启动线程有两种方式,一种是start()
方法, 另外一种是run()
方法,二者有何区别呢?
3 join方法
企业绑带计划,领导绑带同事,实现企业人才梯队计划,这个用法也是线程嵌套调用,确保能够子线程能够执行完成和有顺序执行完成
父线程中加入子线程.join()时,遇到join时,需等子线程完成后才能执行join之后的语句,因此作用有两个:
- 作用1:确保了子线程能够执行完成
- 作用2:通过阻塞状态确保顺序执行