threading模块基本用法

threading.Thread.join函数解释

threading.Thread.join(timeout=None)调用该函数的线程会阻塞调用该线程的主线程和其它线程,直到该线程结束结束为止,或者达到timeout时间为止。

threading.Thread.daemon函数解释

该属性是一个boolean值,决定该线程是否是一个保护线程(后台线程)。它的意思是该线程是为了服务调用该线程的主线程的,即当主线程结束后,不论该线程是否运行完毕,都会立刻结束。

threading.Lock类解释

注意的是,threading.Lock表示的线程锁概念,是一个独立的存在,它不被任何一个线程所拥有。所以其实是各个线程来acquire(抢占),等抢到的那个线程release后其他线程才能继续抢占。

并且threading.Lock类支持context management protocol,即可以使用with语句,可以想见它的__enter__函数中实现了acquire,在它的__exit__函数中实现了release。

threading.local类解释

该类提供一个TLS(Thread Local Storage)机制,具体来说我们定义一个全局变量var=threading.local(),对于var我们可以任意赋予其属性来存储数据。而当各个线程使用这个全局变量var时,都会自动生成一个自己的版本,不会相互影响(本身定义在全局的var属于主线程)。该类的意义不是在于提供一个全局变量让各个线程可以进行修改,从而完成某种逻辑(买票窗口案例),这是线程锁需要处理的事情。该类其实是提供了一个安全的全局变量,让各线程不用在编写调用时传递很多参数,是一种编程范式上的优化,具体见:深入理解Python的TLS机制和Threading.local()

threading模块中的常用函数

threading.current_thread()返回当前所属的线程类。

threading.main_thread()返回主线程类。

threading.active_count()返回当前仍在执行的线程数量。

threading.enumerate()返回当前所有仍在执行的线程所组成的一个列表。

python中threading模块详解及常用方法_Python常用模块功能简介(二)threading相关推荐

  1. python中的GIL详解

    python中的GIL详解 参考Python-- GIL 锁简述 GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就 ...

  2. python的抽象类详解_第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类...

    第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继 ...

  3. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  4. python中的字符串详解(附实现文字跑马灯效果)

    python中的字符串详解 1.什么是字符串 ​ 相信大家对字符串应该是再熟悉不过了吧,因为日常生活中的一句话,或是路边的一则广告,其实它都相当于一个字符串,而顾名思义,字符串也就是一串串的由零个或多 ...

  5. 【 Python 中 int 用法详解】(转载)

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  6. Python 中 int 用法详解

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  7. Python 中 with 用法详解

    浅谈 Python 的 with 语句:https://developer.ibm.com/zh/articles/os-cn-pythonwith/ python3,浅谈with的神奇魔法:http ...

  8. python中match方法返回字符串的长度_Python re模块与正则表达式详解

    Python 中使用re模块处理正则表达式,正则表达式主要用来处理文本中的查找,匹配,替换,分割等问题:我们先来看一个问题,切入正则表达式. 问题: 匹配字符串,最少以3个数字开头.使用Python代 ...

  9. python中new方法详解及_Python中new方法的详解

    new_ 方法是什么? __new__方法其实就是创建对象的方法 new()方法是在类准备将自身实例化时调用. 一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前 ...

最新文章

  1. [转]Gearman分布式远程过程处理框架
  2. laravel文件存储Storage
  3. 15支持哪些数据库版本 tfs_我司虚拟主机支持脚本及数据库版本一览表
  4. python安装MySQLdb包遇到的坑:EnvironmentError: mysql_config not found
  5. 访问进程环境变量environ时的一个坑
  6. k8s使用kubectl命令部署nginx并以nodeport方式暴露端口
  7. vb代码大全_【必会】Rnd随机函数在VB编程中的广泛应用
  8. vim莫名假死的解决办法
  9. golang(2):beego 环境搭建
  10. Became Jane(成为简.奥斯丁)
  11. 行上下移动_这有一台你迟早要用到的手持式“移动空调”
  12. MVC如何分离Controller与View在不同的项目?
  13. CCCC-GPLT L1-034. 点赞 团体程序设计天梯赛
  14. unix grep命令_Linux / UNIX中的Grep命令
  15. 六年一轮回:大数据改变的,不仅仅是我的专业!
  16. 怎样实现iMessage群发
  17. IDEA 问题记录-2022
  18. paypal开发者账户申请步骤(最新最实用)
  19. 基于STM32单片机的篮球计时记分器proteus仿真原理图PCB
  20. linux项目部署、Nginx详解

热门文章

  1. Java反射原理学习之MethodHandle debug
  2. why always WebContent is added as prefix of url when repository request served
  3. 关于SAP CRM One Order状态(Status)和Status Profile的处理逻辑
  4. 自己开发的在线视频下载工具,基于Java多线程
  5. python列表函数方法_与Python列表相关的函数
  6. log4j配置_是时候了解一下log4j2各种配置的含义了!
  7. verilog 简单module_一个简单的verilog小程序
  8. 怀旧服服务器怎么调整显卡性能,用顶级配置玩wow怀旧服是怎样的体验?
  9. 李炎恢+php+下载,李炎恢thinkphp视频教程
  10. 利用滞后——超前系统解决高阶随动系统(课程设计)