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()

输出的结果:

猜你喜欢

转载自blog.csdn.net/weixin_42135441/article/details/83144412