Python学习笔记:threading.Condition多线程调度

本文详细探讨了Python中的threading.Condition对象在多线程调度中的应用。通过实例代码,解释了如何使用Condition进行线程同步,控制线程执行顺序,以及wait()和notify()方法的工作原理。
摘要由CSDN通过智能技术生成
#!/usr/bin/python
#coding:utf-8

#引入线程和时间模块
import threading,time

 

#引入线程条件变量

cond = threading.Condition()

def run():

    #使用with来使用线程条件变量
    with cond:

       #遍历数据,步长为2 ,既:0,2,4,6,8,10
        for i in range(0,10,2):

            #打印线程名称和步数   0
            print threading.current_thread().name,i

            #执行完成后等待信号(这里等待的是run1函数执行完打印步数和线程名称后的释放信号)
            cond.wait()

            #释放信号(这里是释放run1函数执行完打印步数和线程名称之后释放run1的信号)
            cond.notify()

def run1():

    #使用with来使用线程条件变量
    with cond:

        #遍历数据,步长为2 ,既:1,3,5,7,9
        for i in range(1,10,2):

            #打印线程名称和步数   1
            print threading.current_thread().name,i

            #释放信号(这里释放的是run打印完步数 0 的时候等待的信息)
            cond.notify()

            #等待信号(这里是run1执行完打印线程名称和步数后进入等待状态)
            cond.wait()

if __name__=="__main__":
    threading.Thread(target=run).start()
    threading.Thread(target=run1).start()

 

输出的结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值