首页IT科技python多线程下载问题(python线程中Condition的原理)

python多线程下载问题(python线程中Condition的原理)

时间2025-07-31 21:19:30分类IT科技浏览4292
导读:原理分析...

原理分析

1              、Python条件变量Condition需要关联互斥锁              ,同时Condition本身提供了wait                  、notify       、notifyAll方法              。

2           、用于阻塞                  、通知其他并行线程                  ,可以访问共享资源                  。

Condition提供了一种多线程通信机制       。如果线程1需要数据       ,线程1会堵塞等待           ,然后线程2会制造数据           。线程2制造数据后                  ,通知线程1可以获取数据          ,然后线程1会获取数据                  。

实例

#!usr/bin/envpython #-*-coding:utf-8_*- #导入线程模块 importthreading #创建条件变量condition con=threading.Condition() defthread_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() defthread_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基础教程

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python传入参数的方法(Python特殊传参如何实现) opencv识别数字字母(python OpenCV中的光学字符识别介绍)