python_并发编程——管道】的更多相关文章

1.管道 from multiprocessing import Pipe conn1,conn2 = Pipe() #返回两个值 conn1.send('wdc') #发送 print(conn2.recv()) #接收 conn2.send('yhf') print(conn1.recv()) 结果:~双向通信 2.在进程中传递数据 from multiprocessing import Pipe,Process class Pr1(Process): def __init__(self,c…
管道 Conn1,conn2 = Pipe() Conn1.recv() Conn1.send() 数据接收一次就没有了 from multiprocessing import Process,Pipe def f1(conn): from_zhujincheng = conn.recv() print('子进程') print('来自主进程的消息:',from_zhujincheng) if __name__ == '__main__': conn1,conn2 = Pipe() #创建一个管…
管道的作用- 两个进程间传递消息 from multiprocessing import Pipe, Process def func(conn1,conn2): conn2.close() #子进程只需使用connection1,故关闭connection2 while True: try: msg = conn1.recv() print(msg) except EOFError: #没收数据接收的时候,才抛出的异常 conn1.close() break if __name__ == '_…
1.进程池 from multiprocessing import Pool def func(n): for i in range(10): print(n+1) if __name__ == '__main__': pool = Pool(3) #启动有三个进程的进程池. #第一个参数进程要访问的代码,第二个参数必须是一个可迭代参数,规定了要执行的任务数 pool.map(func,range(100)) #100个任务 结果: 每个数打印了10次. 2.进程池和多进程的用时对比 def f…
1.数据共享 实现进程之间的数据共享 from multiprocessing import Manager,Process class MyPro(Process): def __init__(self,dic): super().__init__() self.dic = dic def run(self): self.dic['count'] -= 1 print(self.dic) if __name__ == '__main__': m = Manager() dic = m.dict…
消费者和生产者模型 from multiprocessing import Process,Queue import time import random class Producer(Process): def __init__(self,name,food,q): super().__init__() self.name = name self.food = food self.q = q def run(self): for i in range(1,11): time.sleep(ran…
1.队列 from multiprocessing import Queue q = Queue(5) #创建队列对象,队列大小为5,队列中只能存放5个元素 q.put(1) #往队列中添加元素 q.put(2) q.put(3) q.put(4) q.put(5) print(q.full()) #检测队列是否满了~ print(q.get()) #取出队列中的值 print(q.get()) print(q.get()) print(q.get()) print(q.get()) print…
1.事件 :通过一个信号来控制多个进程同时执行或者阻塞. 一个信号可以使所有的进程都进入阻塞状态,也可以控制所有的进程接触阻塞,一个事件被创建之后,默认是阻塞状态. from multiprocessing import Event e = Event() #创建事件对象 print(e.is_set()) #查看一个事件的状态:默认是阻塞即False print(11111) e.wait() #依据事件状态,来觉得是否阻塞 print(22222) 结果: 2.解除阻塞: from mult…
多进程模拟买票~ import time import json from multiprocessing import Process class Show(Process): #查 def run(self): with open('ticket') as f: dic = json.load(f) print("余票:{}".format(dic['ticket'])) class Buy_ticket(Process): #买 def __init__(self,name):…
1.守护进程 守护进程会随着主进程的代码执行结束而结束. 语法:进程对象.daemon = True时,表示将进程设置为守护进程,一定在start之前设置. import time from multiprocessing import Process class MyProcess(Process): def run(self): while True: time.sleep(1) print('我还活着~') if __name__ == '__main__': q = MyProcess(…