会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 451楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 453楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 454楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 456楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 457楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 460楼

from threading import Thread,Event
from time import sleep
'''
几分钟一辆车
人上车和车辆可以上人是要同时进行的,车辆不在站内和人等待车也是同时进行的
'''

def car():
    num=0
    #global count,有event就不用count了
    while True:
        if event.is_set():      #count%5!=0:
            print('车已到站,可以上车')
            sleep(1)
            #count+=1   #就是上了四个人后开走了
            num+=1
            if num%5==0:
                event.clear()       #上了五个人开走了
        else:
            print("车开走了....")
            sleep(6)
            #count=1        
            #过了六秒后又开来了
            event.set()     #重新变成真的
def person():
    while True:
        #if count%5!=0:
        if event.is_set():
            print('上车!!')
            sleep(1)
        else:
            print('等待车!!!') #用count的时候,等待一直在刷,程序没有停下来
            event.wait()        #阻塞线程
            #sleep(1)
if __name__=="__main__":
    event=Event()
    count=1
    t1=Thread(target=car)
    t2=Thread(target=person)
    t1.start()
    t2.start()

老师,这个event是在车方法里面变成True的,怎么在人方法里面也是True了,两个方法不是一个栈帧里面的,他们的调用event方法也能共用?

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 463楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637