多线程

标签介绍: python对多线程编程的支持,主要由threading模块承载。由于GIL的存在,任意时刻只有一个线程在python解释器中执行,您可以理解为python的解释器(或者说虚拟机)是单核的。多线程编程需要的技巧相对较难,需认真学习总结。

文章列表

多线程中的Condition对象

2020年6月23日

python多线程模块threading中,有一个Condition对象。这个对象可以用来控制更加复杂的线程间的同步。 阅读全文->

with mutex的用法

2020年6月23日

多线程中常常用到的Lock和RLock,也都可以使用with语法来编写代码。既可以减少代码行数,也确保了release。 阅读全文->

不要阻塞tkinter的mainloop

2020年6月22日

最近被GUI多线程代码的死锁问题搞的有点头大,本文总结一下自己的所思所得,并不代表完全正确,因为毕竟没有去阅读tk的源代码。 阅读全文->

多线程threading.Event对象

2020年6月20日

python多线程事件对象,threading.Event。具体什么事件,是程序员定义的,不同的事件使用不同的event对象来控制。 阅读全文->

线程和主GUI同时访问log窗口造成的死锁问题

2020年6月20日

主GUI上有按钮,事件背后有操作log窗口的代码,线程里的代码也有大量写log的代码。 阅读全文->

python的原子操作

2020年6月5日

python编译器会将代码编译为bytecode,对于python而言,每一行bytecode都是原子操作。 阅读全文->

线程不安全一例

2020年6月5日

凡是共享的资源,都要自己加锁控制,不要以为python的每一行脚本都是原子操作,虽然python自定的确定义了一些原子操作,但是不要去依赖,如果哪一天python解释器修改了内部机制,你的代码就会崩溃。 阅读全文->

python多线程的信号量

2020年5月23日

python threading模块还提供古老的信号量(semaphore)功能。本文介绍信号量的基本概念以及应用场景和用法。 阅读全文->

python线程的ID和Name

2020年5月18日

本文记录设置获取python线程的name,以及获取ID的方法。 阅读全文->

python多线程的可重入锁

2020年5月14日

可重复锁(Reentrant Lock),有人也之为递归锁,不过递归锁这个名字有点狭义。python多线程可重入锁就是threading.RLock对象。 阅读全文->

threading.Timer的用法

2020年2月3日

本文介绍的threading.Timer定时器的使用,以及两种设置定时器循环出发时间的技巧和区别。 阅读全文->

queue模块

2020年1月28日

python标准库中有一个queue模块,此模块提供了创建和使用队列的底层封装,而且是线程安全的!queue模块提供FIFO队列,LIFO队列,以及优先级队列。 阅读全文->

tkinter程序的所有窗口,都在一个线程里

2020年1月6日

理清了一个细节,我们用tkinter做GUI程序,有root,有Toplevel,可能界面上有好多不同的窗口。这些不同的窗口,都属于一个程序,而且,这些不同的窗口,都在一个线程中! 阅读全文->

python多线程的互斥锁

2020年5月13日

多线程环境下的互斥很常见,python的提供的互斥锁使用起来很简单方便。多线程互斥的难点不是如何使用锁,而是对问题模型的理解和抽象。 阅读全文->

在python子线程中调用sys.exit的效果?

2020年1月16日

在python子线程中调用sys.exit函数,是什么效果?如果没有捕获SystemExit异常,子线程退出,主线程还在继续该干嘛干嘛;如果在线程中有代码捕获了SystemExit异常,子线程都可以不退出。 阅读全文->

tkinter是否线程安全(threadsafe)?

2019年12月28日

python标准的GUI库,tkinter,到底是不是线程安全的(threadsafe)?本文给出答案。可以这么说:现在新安装的python,自带的tkinter都是线程安全的,以前的不一定是! 阅读全文->

python3的print是线程安全的

2020年5月23日

结论:python2的print是线程不安全的,多线程打印输出会造成混乱;而python3的print是线程安全的,多线程打印输出不会造成混乱! 阅读全文->

tkinter界面因线程join卡死的案例

2019年12月28日

在编写GUI程序的时候,对于比较耗时的操作,常规的思路都是扔给线程去计算,这样可以保持GUI界面不会出现卡死。本文介绍因为线程join函数导致界面卡死的一个案例。 阅读全文->


©Copyright 麦新杰 Since 2019 Python笔记

go to top