首页 > 代码库 > python基础23 -----进程和线程
python基础23 -----进程和线程
一、进程
1、什么是进程?
1.1 进程就是一个程序在一个数据集上的一次动态执行过程。进程一般由程序、数据集、进程控制块三部分组成。
1.2 程序是指进程需要完成那些功能以及如何完成。
1.3 数据集是指程序在执行过程中所需要使用的资源。
1.4进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用他来控制和管理进程,他是系统感知进程存在的唯
一标识
二、线程
1、为什么会有线程?
1.1线程是为了降低上下文切换的消耗,提高系统的并发性,突破一个进程只能干一件事的局限。
2、什么是线程?
2.1线程是轻量级进程,他是一个基本的cpu执行单元,也是程序执行过程中的最小单元。由线程ID,程序计数器,寄存器集合,
和堆栈共同组成。
· 3、线程的好处?
3.1 减少了程序并发执行的消耗,提高了操作系统的并发性能,但是线程没有自己的系统资源,是由进程分配的。
三、进程和线程的关系
1、一个线程只能属于一个进程,而一个进程可以有多个线程,但是最少必须有一个主线程。
2、系统资源分配给进程,进程下的所有线程共享分配给该进程的所有资源。
3、CPU分配给线程,即真正在cpu上运行的是线程。
四、并行和并发
1、什么是并行处理?
并行处理指的是计算机cpu同事处理两个或两个以上的线程或者说是程序。
2、什么是并发处理?
并发处理指的是计算机cpu在一段时间内能切换处理多少个进程。
3、二者之间的关系?
并行是并发的子集,并发是并行的父集。
4、补充知识点
串行:串行指的是cpu按顺序执行程序。
五、同步和异步
1、什么是同步?
同步就是指一个进程在执行某个请求时,若该请求需要一段时间才能返回信息,那么这个进程就会一直等待下去直到
接收到该请求的返回信息才会执行下面的操作。
2、什么是异步?
异步是指一个进程在执行某个请求后,若该请求需要一段时间才能返回信息,但是该进程不会等待该请求,而是直接执行下面的操作
当该请求有返回信息时操作系统会通知进程进行处理,这种异步处理的机制大大提高了程序的执行效率。
六、密集型任务
1、IO密集型任务
程序存在大量IO操作,比如说sleep,input,accert,等等。
2、计算密集型任务
程序存在大量的计算操作,除IO操作外的程序都是计算操作。
3、在多线程处理程序的情况下,IO密集型任务比计算密集型任务更有优势。
4、补充:对应python而言,无法利用多核,因为他的进程有一个lock锁的机制,
python基础23 -----进程和线程