python线程中Condition的原理
- 更新时间:2021-07-05 09:18:39
- 编辑:罗肖倩
本站收集了一篇相关的编程文章,网友程开宇根据主题投稿了本篇教程内容,涉及到Python相关内容,已被699网友关注,涉猎到的知识点内容可以在下方电子书获得。
参考资料
- Python数据分析入门:从数据获取到可视化 PDF 电子书 / 5.4 MB / 沈祥壮 推荐度:
- Python游戏编程入门 PDF 电子书 / 41.6 MB / 李强 推荐度:
- Python编程入门与算法进阶 PDF 电子书 / 20.6 MB / 中国电子学会 推荐度:
- Python数据分析与挖掘实战 PDF 电子书 / 46.8 MB / 张良均 推荐度:
- Python编程实践和程序设计(PPT源码) / 66.62 MB / 码小辫 推荐度:
正文内容
码农之家最近发表了一篇名为《python线程中Condition的原理》的py文章,代码整理的很实用,重新排版了一下发到这里,为了大家阅读方便。
原理分析
1、Python条件变量Condition需要关联互斥锁,同时Condition本身提供了wait、notify、notifyAll方法。
2、用于阻塞、通知其他并行线程,可以访问共享资源。
Condition提供了一种多线程通信机制。如果线程1需要数据,线程1会堵塞等待,然后线程2会制造数据。线程2制造数据后,通知线程1可以获取数据,然后线程1会获取数据。
实例
# !usr/bin/env python # -*- coding:utf-8 _*- # 导入线程模块 import threading # 创建条件变量condition con = threading.Condition() def thread_one(name): # 条件变量condition 线程上锁 con.acquire() print("{}:成语接龙准备好了吗".format(name)) # 唤醒正在等待(wait)的线程 con.notify() # 等待对方回应消息,使用wait阻塞线程,等待对方通过notify唤醒本线程 con.wait() print("{}:一干二净".format(name)) # 唤醒对方 con.notify() # 等待消息答应 con.wait() print("{}:一天就知道看抖音美女,给你来个简单点的,来了:毛手毛脚".format(name)) # 唤醒对方 con.notify() # 等待消息答应 con.wait() print("{}:哟哟哟,不错不错!".format(name)) # 唤醒对方 con.notify() # 条件变量condition 线程释放锁 con.release() def thread_two(name): # 条件变量condition 线程上锁 con.acquire() # wait阻塞状态,等待其他线程通过notify唤醒本线程 con.wait() print("{}:准备好了~开始吧!".format(name)) # 唤醒对方 con.notify() # 等待消息答应 con.wait() print("{}:净你妹啊,没法接...来个简单点的...".format(name)) # 唤醒对方 con.notify() # 等待消息答应 con.wait() print("{}:嘿,这个我知道:脚踏实地".format(name)) # 唤醒对方 con.notify() con.release() if __name__ == "__main__": # 创建并初始化线程 t1 = threading.Thread(target=thread_one,args=("A")) t2 = threading.Thread(target=thread_two,args=("B")) # 启动线程 -- 注意线程启动顺序,启动顺序很重要 t2.start() t1.start() # 阻塞主线程,等待子线程结束 t1.join() t2.join() print("程序结束!") ''' 输出结果: A:成语接龙准备好了吗 B:准备好了~开始吧! A:一干二净 B:净你妹啊,没法接...来个简单点的... A:一天就知道看抖音美女,给你来个简单点的,来了:毛手毛脚 B:嘿,这个我知道:脚踏实地 A:哟哟哟,不错不错! 程序结束! '''
以上就是python线程中Condition的原理,希望对大家有所帮助。
相关教程
-
Python实现的微信红包提醒功能示例
这篇文章主要介绍了Python实现的微信红包提醒功能,结合实例形式分析了Python使用微信模块itchat实现微信红包提醒操作的相关实现技巧,需要的朋友可以参考下
发布时间:2019-09-09
-
对python实现二维函数高次拟合的示例详解
今天小编就为大家分享一篇对python实现二维函数高次拟合的示例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-06-03