python多线程Event实现红绿灯案例

Posted 海的味道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多线程Event实现红绿灯案例相关的知识,希望对你有一定的参考价值。

代码:

# __author__ = ‘STEVEN‘
# coding = utf-8
import time,threading
#开启事件
event = threading.Event()
count = 0
class Lighter(threading.Thread):
    def run(self):
        while True:
            global count
            count += 1
            time.sleep(0.4)
            event.set()
            #设置绿灯时间为10s,红灯为10s
            if count>10 and count<=20:
                event.clear()
                print(‘\033[41;1m red light ..\033[0m‘)
            elif count > 20:
                count = 0
                event.set()
                print(‘\033[42;1m green light ..\033[0m‘)
            else:
                print(‘\033[42;1m green light ..\033[0m‘)


class Car(threading.Thread):
    def __init__(self,name):
        super(Car,self).__init__()
        self.name = name
    def run(self):
        time.sleep(0.5)
        if event.is_set():
            print(‘{} passed the light‘.format(self.name))
        else:
            print(‘{} is waiting the green light‘.format(self.name))

l = Lighter()
l.start()
#启动50辆车,让他们经过红绿灯
for i in range(50):
    time.sleep(1)
    c = Car(‘car{}‘.format(i))
    c.start()

  

 

以上是关于python多线程Event实现红绿灯案例的主要内容,如果未能解决你的问题,请参考以下文章

第54天:Python 多线程 Event

多线程中的event,用于多线程的协调

java多线程模拟红绿灯案例

Python 实现红绿灯

Python学习笔记——进阶篇第八周———Socket编程进阶&多线程多进程

python之event事件