python--线程和进程的初识

1、进程与线程之间的关系
  一、线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。
  二、线程可与属于同一进程的其它线程共享进程所拥有的所有资源,可是其自己基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。

2、进程、线程的优缺点
  进程:
    优势:同时利用多个cpu,可以同时进行多个操做
    缺点:耗费资源(从新开劈内存空间)

  线程:
    优势:共享内存,IO操做时候,创造并发操做
      一、易于调度。
      二、提升并发性。经过线程可方便有效地实现并发性。进程可建立多个线程来执行同一程序的不一样部分。
      三、开销少。建立线程比建立进程要快,所需开销不多
    缺点:抢占资源
多线程


结论:
  一、进程不是越多越好,理想的是cpu个数=进程个数;线程也不是越多越好,具体案例具体分析,请求上下文切换耗时。
  二、计算机中执行任务的最小单元:线程
  三、IO密集型:多线程
  四、计算密集型:多进程
  五、GIL :全局解释器锁

3、进程的基本状态及状态之间的关系并发

  状态:运行、阻塞、挂起阻塞、就绪、挂起就绪高并发

状态之间的转换:spa

(1)准备就绪的进程,被CPU调度执行,变成运行态;
(2)运行中的进程,进行I/O请求或者不能获得所请求的资源,变成阻塞态;
(3)运行中的进程,进程执行完毕(或时间片已到),变成就绪态;
(4)将阻塞态的进程挂起,变成挂起阻塞态,当致使进程阻塞的I/O操做在用户重启进程前完成(称之为唤醒),挂起阻塞态变成挂起就绪态,当用户在I/O操做结束以前重启进程,挂起阻塞态变成阻塞态;
(5)将就绪(或运行)中的进程挂起,变成挂起就绪态,当该进程恢复以后,挂起就绪态变成就绪态;线程

相关文章
相关标签/搜索