色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python通過4種方式實現進程數據通信

瀏覽:29日期:2022-08-02 14:54:21

python提供了4種方式來滿足進程間的數據通信

1. 使用multiprocessing.Queue可以在進程間通信,但不能在Pool池創建的進程間進行通信

2. 使用multiprocessing.Manager.Queue可以在Pool進程池創建的進程間進行通信

3. 通過Pipe進行線程間的通信, pipe進程間通信的性能高于Queue,但是它只能在兩個進程間進行通信

4. 使用Manager類提供的數據結構可以進行進程間的通信

from multiprocessing import Process, Queue, Pool, Manager, Pipe# 注意線程間的通信,使用的queue.Queue# from queue import Queueimport time# 1. 使用multiprocessing.Queue可以在進程間通信# def producer(queue):# queue.put(’A’)# time.sleep(2)## def consumer(queue):# time.sleep(2)# data = queue.get()# print(data)## if __name__ == ’__main__’:# queue= Queue(10)# p = Process(target=producer, args=(queue,))# c = Process(target=consumer, args=(queue,))# p.start()# c.start()# p.join()# c.join()# 2. 使用共享全局變量,在多進程間通信(結論: 不行)# def producer(a):# a += 1# time.sleep(2)### def consumer(a):# time.sleep(2)# print(a)## if __name__ == ’__main__’:# a = 1# p = Process(target=producer, args=(a,))# c = Process(target=consumer, args=(a,))# p.start()# c.start()# p.join()# c.join()# 3. multiprocessing.Queue不能用于multiprocessing.Pool進程池創建的進程間進行通信# def producer(queue):# queue.put(’A’)# time.sleep(2)### def consumer(queue):# time.sleep(2)# data = queue.get()# print('consumer:%s' % data)### if __name__ == ’__main__’:# # queue = Queue(10) # 這個是使用multiprocessing.Queue,無效# queue = Manager().Queue(10) # 這個是使用multiprocessing.Manager.Queue, 可以# pool = Pool(2)# pool.apply_async(producer, args=(queue,))# pool.apply_async(consumer, args=(queue,))# pool.close()# pool.join()# 4.通過Pipe進行線程間的通信, pipe進程間通信的性能高于Queue# def producer(pipe):# pipe.send(’admin’)### def consumer(pipe):# data = pipe.recv()# print('consumer:%s' % data)### if __name__ == ’__main__’:# receive_pipe, send_pipe = Pipe()# '''Pipe只能適應于兩個進程間的通信'''# p = Process(target=producer, args=(send_pipe,))# c = Process(target=consumer, args=(receive_pipe,))# p.start()# c.start()# p.join()# c.join()# 5. 進程間通信的其它方式def add_data(p_dict, key, value): p_dict[key] = valueif __name__ == ’__main__’: progress_dict = Manager().dict() #Manager()類中提供的數據結構都能夠做到進程的通信 first_progress = Process(target=add_data, args=(progress_dict, ’name’, ’admin’,)) second_progress = Process(target=add_data, args=(progress_dict, ’age’, 45,)) first_progress.start() second_progress.start() first_progress.join() second_progress.join() print(progress_dict) #{’age’: 45, ’name’: ’admin’}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产黄页 | 国产三级精品91三级在专区 | 草草在线影院 | 一色屋精品亚洲香蕉网站 | a级日韩乱理伦片在线观看 a级特黄毛片免费观看 | 国产高清一级视频在线观看 | 久久综合一区二区三区 | 可以免费观看欧美一级毛片 | 国产在线爱做人成小视频 | 国产三级久久久精品三级 | 在线成人aa在线看片 | 成人18免费视频 | 久草网站 | 毛片大全在线观看 | 一个人的视频日本免费 | 91一区| 日韩区在线 | 国产欧美日韩在线观看一区二区三区 | 日本三级视频在线 | 精品爱爱 | 女人张开腿 让男人桶视频 女人张开腿等男人桶免费视频 | 欧美日韩一本 | 欧美日韩一区二区综合在线视频 | 一级毛片免费不卡夜夜欢 | 日韩亚洲欧美理论片 | 亚洲国产一区二区三区在线观看 | 中文字幕亚洲 综合久久 | 一本色道久久综合亚洲精品高清 | 成人在线不卡视频 | 免费韩国一级毛片 | 蜜臀91精品国产高清在线观看 | 亚洲欧美国产精品 | 精品午夜一区二区三区在线观看 | 国产一区二区免费不卡在线播放 | 午夜限制r级噜噜片一区二区 | 精品一区二区久久久久久久网站 | 亚洲成人免费在线 | 亚洲成人黄色在线观看 | 波多野结衣免费免费视频一区 | 一级全黄视频 | 久久久久久91香蕉国产 |