首页 > 代码库 > 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 -----进程和线程