zoukankan      html  css  js  c++  java
  • Event事件

    Event事件,event.wait()可以设置超时时间,超过这个时间,就算没有发送信号,也将执行其他任务

    from threading import Thread,Event
    import time
    event=Event()
    def student(name):
        print("学生%s正在听课" % name)
        event.wait()
        print("学生%s正在休息" % name)
    
    def teacher(name):
        print("老师%s正在授课" % name)
        time.sleep(7)
        event.set()
    if __name__=="__main__":
        stu1=Thread(target=student,args=("ya",))
        stu2=Thread(target=student,args=("w",))
        stu3=Thread(target=student,args=("l",))
        teh1=Thread(target=teacher,args=("Teacher",))
        stu1.start()
        stu2.start()
        stu3.start()
        teh1.start()

    Event使用,一个线程对服务端进行检测,检测通过后发送事件通知其他线程进行连接

    from threading import Thread,Event,currentThread
    import time
    event=Event()
    # event.clear()#恢复event的状态值为False
    def conn():
        n=0
        while not event.is_set():#判断是否被设置
            if n==3:
                print("%s try too many times"% currentThread().getName())
                return
            print("%s is try %s" % (currentThread().getName(),n))
            event.wait(0.5)#设置等待超时时间
            n+=1
        print("%s is connected" % currentThread().getName())
    def check():
        print("%s is checking" % currentThread().getName())
        time.sleep(5)
        event.set()#设置
    if __name__=="__main__":
        for i in range(3):
            t=Thread(target=conn)
            t.start()
        t=Thread(target=check)
        t.start()

  • 相关阅读:
    javascript中map的用法
    洛谷P1057传球游戏-题解
    洛谷P1049装箱问题-题解
    洛谷P1048采药-题解
    洛谷P1044栈-题解
    洛谷P1040加分二叉树-题解
    洛谷P1005矩阵取数游戏-题解
    洛谷P1004方格取数-题解
    洛谷P1002过河卒-题解
    搜索
  • 原文地址:https://www.cnblogs.com/yaya625202/p/9044081.html
Copyright © 2011-2022 走看看