线程概念

1、什么是线程 (thread)

  线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。

2、线程特征:

  【1】一个进程可以包含多个线程

  【2】线程是计算机内核使用的最小单位

  【3】线程也是一个运行过程,也要消耗计算机资源

  【4】多个线程共享共用进程的资源

  【5】线程也有自己的特征属性,TID 指令集,线程栈

  【6】多个线程之间独立运行互不干扰

  【7】线程的创建删除消耗的资源要小于进程

3、线程的标准库模块

  threading

4、线程通信

  【1】通信方法 : 多个线程共用进程空间,所以进程的全局变量对进程内线程均可见。

          所以线程往往使用全局变量进行通信

          https://www.cnblogs.com/longyuu/p/14261712.html

  【2】注意事项 : 线程间使用全局变量进行通信,全局变量为共享资源,往往需要同步互斥机制

5、线程的同步互斥

  【同步】事件Event 

      https://www.cnblogs.com/longyuu/p/14261694.html

  【互斥】线程锁 Lock

      https://www.cnblogs.com/longyuu/p/14261726.html

6、python线程的GIL问题

  GIL---->全局解释器锁

  python ---> 支持线程操作 --->IO的同步和互斥 --> 加锁 ----> 超级锁,给解释器加锁

  后果 : 一个解释器,同一时刻只解释一个线程,此时其他线程需要等待。大大降低了python线程的执行效率

7、python GIL问题解决方案

  【1】修改c解释器

  【2】尽量使用多进程进行并行操作

  【3】python线程可以用在高延迟多阻塞的IO情形

  【4】不使用cpython c# java做解释器

 

posted @ 2021-01-10 16:26  昱成  阅读(428)  评论(0编辑  收藏  举报