Python 线程与进程初识

1.python 有个GIL全局解释器锁,会限制进程,只允许进程里的一个线程与CPU进行交互。

2.一个应用程序可以有一个或多个进程,必须有一个主进程,可以创建多个子进程

3.一个进程里面可以有一个线程或多个线程,必须有一个主线程,可以创建多个子进程

4.Python 与其他语言不同,特有的GIL,让线程看似很鸡肋

  IO密集型:多线程 (基本不用CPU)

  计算密集型:多进程 (CPU进行计算)

5.计算机中执行任务的最小单元是线程,线程和进程的目的是提高执行效率

6.进程: (不是越多越好,CPU个数=进程个数)

    优点:同时利用多个CPU,能够进行多个操作

    缺点:耗费资源(内存)

  线程:(不是越多越好,具体情况,要考虑线程切换的耗时)

    优点:共享内存,IO操作可实现并发

    缺点:抢占资源(死锁)

 

7.关系图

 

  上图理解程序进程与线程的关系,GIL的作用:每次只允许一个进行通信,核数=进程数等

posted @ 2017-05-06 22:56  1916  阅读(100)  评论(0)    收藏  举报