码迷,mamicode.com
首页 > 编程语言 > 详细

38 线程

时间:2020-05-02 20:56:22      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:class   执行   pipe   pip   code   队列   font   接受   异步   

回顾:

 

生产者消费者模型
主要为了解决强耦耦合的问题


队列

 from multiprocessing import Queue

 


先进先出
  队列本身是安全的

from multiprocessing import JoinableQueue

task_done()    每消费一个数据,就返回一个标识
join()          接收task_done返回的标识,以便可以知道队列中的数据什么时候被消费完了

 

 

 

管道(了解)
本身是不安全的 

from multiprocessing import Pipe


con1,con2 = Pipe()

con1可以收发数据,con2也可以收发数据(全双工)


队列 = 管道 + 锁

 

 

多进程之间共享内存数据:

from multiprocessing import Manager,Value

 

进程池

from multiprocessing import Pool


p.map(func,iterable)

p.apply(func,args=())   同步的做任务
            池中的进程是普通进程,不会跟随着主进程的结束而结束。

p.apply_async(func,args=(),callback=None)    异步,记得加上close和join
close:                   不再接受新的任务,准备关闭
join:                    等待进程池中所有进程执行完毕任务。

 

池中的进程是守护进程,主进程的代码执行完毕,守护进程就结束了

在进程池中的回调函数是主进程调用的,和子进程无关。

 

38 线程

标签:class   执行   pipe   pip   code   队列   font   接受   异步   

原文地址:https://www.cnblogs.com/zhuangdd/p/12819099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!