Python学习笔记:threading.Condition多线程调度
#!/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()
输出的结果: