Python多线程编程(八):使用Event实现线程间通信
作者:junjie 时间:2023-05-07 15:25:50
使用threading.Event可以实现线程间相互通信,之前的Python:使用threading模块实现多线程编程七[使用Condition实现复杂同步]我们已经初步实现了线程间通信的基本功能,但是更为通用的一种做法是使用threading.Event对象。使用threading.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到线程对象中,Event默认内置了一个标志,初始值为False。一旦该线程通过wait()方法进入等待状态,直到另一个线程调用该Event的set()方法将内置标志设置为True时,该Event会通知所有等待状态的线程恢复运行。
'''
Created on 2012-9-9
@author: walfred
@module: thread.TreadTest8
'''
import threading
import time
class MyThread(threading.Thread):
def __init__(self, signal):
threading.Thread.__init__(self)
self.singal = signal
def run(self):
print "I am %s,I will sleep ..."%self.name
self.singal.wait()
print "I am %s, I awake..." %self.name
if __name__ == "__main__":
singal = threading.Event()
for t in range(0, 3):
thread = MyThread(singal)
thread.start()
print "main thread sleep 3 seconds... "
time.sleep(3)
singal.set()
运行效果如下:
I am Thread-1,I will sleep ...
I am Thread-2,I will sleep ...
I am Thread-3,I will sleep ...
main thread sleep 3 seconds...
I am Thread-1, I awake...I am Thread-2, I awake...
I am Thread-3, I awake...
标签:Python,多线程,Event,线程间通信
0
投稿
猜你喜欢
关于python中remove的一些坑小结
2022-09-22 02:14:31
详解Python异常处理中的Finally else的功能
2023-08-19 01:01:20
golang实现跨域访问的方法
2024-02-15 18:33:31
Python中最大最小赋值小技巧(分享)
2021-08-26 06:07:44
Golang Mutex互斥锁深入理解
2024-04-25 13:18:08
Git的使用规范流程总结
2023-03-15 06:26:59
vscode单击新文件时覆盖旧文件的解决方法
2022-02-16 09:09:48
Python中的基本数据类型介绍
2023-07-21 22:26:26
pip安装python库时报Failed building wheel for xxx错误的解决方法
2021-12-12 04:55:53
sql索引失效的情况以及超详细解决方法
2024-01-21 09:25:30
selenium中常见的表单元素操作方法总结
2021-06-15 23:54:32
SQL开窗函数的具体实现详解
2024-01-26 12:16:37
JS实现FLASH幻灯片图片切换效果的方法
2024-04-22 13:01:57
python2.7+selenium2实现淘宝滑块自动认证功能
2023-06-06 14:29:34
python基于openpyxl生成excel文件
2022-08-03 03:10:47
MySQL数据库对dvbbs.php全文搜索的完全分析
2010-06-11 13:25:00
PHP中Static(静态)关键字功能与用法实例分析
2024-05-03 15:53:52
Ubuntu权限不足无法创建文件夹解决方案
2021-04-06 01:31:27
Python实现钉钉发送报警消息的方法
2022-11-18 06:06:44
javascript检测对象中是否存在某个属性判断方法小结
2024-04-30 10:10:54