• python 多进程 Event的使用


    Event事件  多进程的使用

    通俗点儿讲  就是

    1.  Event().wait()    插入在进程中插入一个标记(flag)  默认为 false  然后flag为false时  程序会停止运行  进入阻塞状态  

    2.  Event().set()     使flag为Ture  然后程序会停止运行 进入运行状态  

    3.  Event().clear()      使flag为false  然后程序会停止运行 进入阻塞状态  

    4.  Event().is_set()   判断flag  是否为True  是的话 返回True  不是 返回false

    from multiprocessing import Event,Process
    import time
    from datetime import datetime
    from psutil import cpu_count
    
    
    def work(e,):
        # 子进程
        while True:
            #print('我是子进程,我先休息!')
            e.wait() #阻塞等待信号  这里插入了一个flag  默认为 false
            print('[S] 这是我的定时任务!',datetime.now().second)
            time.sleep(1)
          
    
    #信号:
        #某一些用户链接的时候,Nginx就会做出相应
        #Epoll: 信号|事件
    
    #21点51分
    def main():
        e = Event()
        a = int()
        p = Process(target=work,name='子进程',args=(e,))
        p.start()
        while True:
            if datetime.now().second > 10:
                print('[F] 子进程取消阻塞状态')
                e.set() #这里 等秒钟大于10S  就开启子进程 工作 使插入的flag为 True  然后继续执行
                break
        while True:
            if datetime.now().second > 30:
                print('[F] 子进程结束阻塞状态')
                e.clear() #这里 等秒钟大于30S  就停止子进程工作  使插入的flag为false  就会停止子进程工作
                break
        time.sleep(5)#休息5s
        e.set()#继续使flag 为真 然后执行子进程
        print('[F] 又开启了')
        time.sleep(5)#休息5s
        e.clear()#继续使flag 为假 然后停止子进程
        print('[F] 又停止了')
    
    if __name__ == '__main__':
        main()
       生命不息
       希望不止
       将来的你
       一定会感谢现在拼命的自己
       fighting!!!
  • 相关阅读:
    vim中如何设置多行注释和删除注释
    ubuntu如何设置普通用户密码
    ubuntu中出现syntax error:Bad for loop variable
    学习进度条
    单元测试练习
    用户体验设计案例分析
    学生成绩录入系统设计与实现
    需求分析
    结对项目——词频统计2
    结对项目—— 词频统计
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9720599.html
Copyright © 2020-2023  润新知