zoukankan      html  css  js  c++  java
  • 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!!!
  • 相关阅读:
    为什么今日头条是技术牛人收割机(FW)
    独家|浅谈用户行为数据的价值挖掘(PPT)(FW)
    深度学习笔记
    "堕落"的头条,还是"不堪"的民众?
    理解传统企业的问题与困惑
    人工智能在医疗领域究竟要怎么玩?(FW)
    佟崴嵬
    youtube true view的逻辑
    AI第一性原理
    域对象的属性和请求的转发重定向
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9720599.html
Copyright © 2011-2022 走看看