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()

python 多进程 Event的使用的更多相关文章

  1. Python多进程编程

    转自:Python多进程编程 阅读目录 1. Process 2. Lock 3. Semaphore 4. Event 5. Queue 6. Pipe 7. Pool 序. multiproces ...

  2. Python多进程使用

    [Python之旅]第六篇(六):Python多进程使用   香飘叶子 2016-05-10 10:57:50 浏览190 评论0 python 多进程 多进程通信 摘要:   关于进程与线程的对比, ...

  3. Python多进程multiprocessing使用示例

    mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多. import multipr ...

  4. python 多进程开发与多线程开发

    转自: http://tchuairen.blog.51cto.com/3848118/1720965 博文作者参考的博文:  博文1  博文2 我们先来了解什么是进程? 程序并不能单独运行,只有将程 ...

  5. day-4 python多进程编程知识点汇总

    1. python多进程简介 由于Python设计的限制(我说的是咱们常用的CPython).最多只能用满1个CPU核心.Python提供了非常好用的多进程包multiprocessing,他提供了一 ...

  6. python 多进程 logging:ConcurrentLogHandler

    python 多进程 logging:ConcurrentLogHandler python的logging模块RotatingFileHandler仅仅是线程安全的,如果多进程多线程使用,推荐 Co ...

  7. 【转】Python多进程编程

    [转]Python多进程编程 序. multiprocessingpython中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Pytho ...

  8. 【转】【Python】Python多进程与多线程

    1.1 multiprocessing multiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器.避免了GIL(全局解释锁)对资源的影响. 有以下常用类: 类 描述 P ...

  9. python多进程详解

    目录 python多进程 序.multiprocessing 一.Process process介绍 例1.1:创建函数并将其作为单个进程 例1.2:创建函数并将其作为多个进程 例1.3:将进程定义为 ...

随机推荐

  1. k8s一点

    1.kubectl get secret -n kube-system|grep admin-token kubernetes-dashboard-admin-token-9q757  2.kubec ...

  2. java json-lib配置

    用法 项目中要用到json-lib,mvnrepository.com查找它的dependency时结果如下: import net.sf.json.JSONArray; import net.sf. ...

  3. AD阶段分类论文阅读笔记

    A Deep Learning Pipeline for Classifying Different Stages of Alzheimer's Disease from fMRI Data -- Y ...

  4. oc for in遍历

    在oc中用for in遍历可变数组时,不能修改删除新增元素,因为for in遍历是枚举遍历,在遍历的过程中不能修改容器里的值. NSMutableArray *arr=[NSMutableArray ...

  5. [转]SQL - Create XML - How to set Unicode UTF-8

    本文转自:https://stackoverflow.com/questions/44754356/sql-create-xml-how-to-set-unicode-utf-8 I found a ...

  6. MyCAT全局序列号-数据库方式

    1.MyCat中的全局序列号介绍 在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一.为此,MyCat 提供了全局 sequence,并且提供了包含本地配置和数据库配置等多种实现方式. ...

  7. 子序列个数(fzu2129)

    子序列个数 Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  8. 常系数线性递推的第n项及前n项和 (Fibonacci数列,矩阵)

      (一)Fibonacci数列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的第n项的快速求法(不考虑高精度). 解法: 考虑1×2的矩阵[f[n-2],f[n-1]].根据fibon ...

  9. C# 免客户端访问Oracle的DLL

    代码示例: OracleConnection con = new OracleConnection();               con.ConnectionString ="user ...

  10. Linux常用基本命令( mkdir )

    mkdir: 作用:创建目录( make directories ) 命令格式: make [option] 目录 1,创建目录, 当目录存在时,再次创建会提示文件已经存在 ghostwu@dev:~ ...