Python学习基础核心笔记汇总——多线程编程

第十八章 多线程编程

Python 代码的执行由 Python 虚拟机(也叫解释器主循环) 来控制。

虽然 Python 解释器中可以“运行”多个程序, 但在任意时刻,只有一个线程在解 释器中运行。与单个 CPU 的多线程原理是一样的。

对 Python 虚拟机的访问由全局解释器锁(GIL) 来控制的,也正是这个锁保证了同 一时刻只有一个线程在运行。

不建议使用 thread 模块,而推荐使用 threading 模块, 原因:

  Thread 模块不支持守护进程。在主线程退出的时候,所有他其他线程没有被清除 就退出了

  Threading 模块支持守护进程。 能保证所有“重要的”子线程都退出后, 进程才会 结束

  Threading 模块更为先进,对线程的支持更为完善

  Thread 模块中的属性可能与threading 出现冲突

 低级别的 Thread 模块的同步原语只有一个,而 Threading 则有很多

time.sleep(secs):睡眠多长时间, secs 单位秒(不是毫秒)

start_new_thread(function, args keargs=None) 产生一个新的线程,在新线程中用指定的参 数和可选的 kwargs 来调用这个函数

Threading 的 Thread 类是我们主要的运行对象。它有很多 Thread 模块中没有的函数。

函数

描述

start()

开始线程的执行

run()

定义线程的功能的函数(一般会被子类重写)

join(timeout=None)

程序挂起直到线程结束;给了 timeout,则最多阻塞 timeout 秒

getName()

返回线程的名字

setName(name)

设置线程的名字

isAlive()

布尔标志,标示这个线程是否还在运行中

isDaemon()

返回线程的 daemon 标志

setDaemon(daemonic)

把线程的 daemon 标志设为 daemonic  (一定要在 start()前调用)

注: thread.start()前调用 thread.setDaemon(True)表示这个线程“不重要”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘿哈小将

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值