首页 > 系统服务 > 详细

进程池,管道,事件,回调函数,信号量

时间:2019-08-11 01:46:05      阅读:119      评论:0      收藏:0      [点我收藏+]

管道:

conn1,conn2 = Pipe(),全双工,可以收发消息,一端发,另一端收,跨进程使用

事件:

  e = Event()  初始等于False

       e.wait()   当对象状态为False,此处会阻塞;当其为true,继续执行

  e.set()  对事件对象改为true

  e.is_set()查看状态

  e.clear()  将事件状态改为false

信号量:

  s.semphore(n)   n为同时被锁的进程个数

  方法使用同Lock,相当于锁的内部加一个计数器,完成一个即可释放一个

进程池(重点):为了提高效率,避免创建销毁重复进程的时间损失

  map(任务名,可迭代对象):异步提交任务,瞬间提交多个,开始执行,自带close和join。

  apply(任务名,参数):同步执行任务,必须等一个任务执行结束,才可以向进程池提交下一个任务,可以直接拿到返回结果

  res_obj = apply——async(任务名,参数):异步,瞬间提交多个提交任务,可以拿到返回结果对象

  从结果对象中拿结果,用get()方法,阻塞。没拿到结果会一直等。

  close():锁住进程池,防止新的任务提交给进程池

  join();等待进程池将自己里面的任务都执行完

回调函数

  apply_async(f1,arhes(,),call_back=f2)   将前面f1任务的返回结果作为参数传给后面指定的f2

进程池,管道,事件,回调函数,信号量

原文:https://www.cnblogs.com/shachengcc1/p/11333278.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!