国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python進(jìn)程的通信Queue、Pipe實(shí)例分析

瀏覽:4日期:2022-07-31 17:19:58

本文實(shí)例講述了Python進(jìn)程的通信Queue、Pipe。分享給大家供大家參考,具體如下:

內(nèi)容相關(guān):

概念:進(jìn)程的通信

Queue:創(chuàng)建與使用

Pipe:創(chuàng)建與使用

進(jìn)程通信的概念 進(jìn)程的資源空間是相互獨(dú)立的,一般而言是不能相互訪問(wèn)的。但很多情況下進(jìn)程間需要互相通信,來(lái)完成系統(tǒng)的某項(xiàng)功能。進(jìn)程通過(guò)與內(nèi)核及其它進(jìn)程之間的互相通信來(lái)協(xié)調(diào)它們的行為。 通信方法: 數(shù)據(jù)傳輸:一個(gè)進(jìn)程將它的數(shù)據(jù)發(fā)送給另一個(gè)進(jìn)程【如socket一般,把需要通信的數(shù)據(jù)傳輸給對(duì)方】 管道:使用一片獨(dú)立的區(qū)域【不在雙方的資源空間中】,像一個(gè)有兩個(gè)口的倉(cāng)庫(kù)一樣,廠家負(fù)責(zé)在東門(mén)把產(chǎn)品放到倉(cāng)庫(kù),司機(jī)負(fù)責(zé)在西門(mén)拉走產(chǎn)品 資源共享:約定一片區(qū)域,雙方都可以隨意取放 消息隊(duì)列:這也是一個(gè)獨(dú)立的區(qū)域,足夠權(quán)限的進(jìn)程可以向隊(duì)列中添加消息,被賦予讀權(quán)限的進(jìn)程則可以讀走隊(duì)列中的消息 Queue: 可以使用隊(duì)列multiprocessing.Queue來(lái)進(jìn)行進(jìn)程通信

Queue 在multiprocessing 模塊中:from multiprocessing import Queue

Queue的使用: 1.創(chuàng)建對(duì)象:Queue對(duì)象=Queue() 2.傳入對(duì)象:要在主進(jìn)程外使用Queue對(duì)象,需要作為參數(shù)傳入Python進(jìn)程的通信Queue、Pipe實(shí)例分析 3.操作對(duì)象:【獲取元素:Queue對(duì)象.get()】、【放入元素:Queue對(duì)象.put(元素)】

#Queue在multiprocessing中from multiprocessing import Queue,Processdef f(q):#要在主進(jìn)程外使用,需要作為參數(shù)傳入 q.put([’helloworld’]) def m(q): print('get in p2:',q.get())if __name__=='__main__': q=Queue() p=Process(target=f,args=(q,)) p.start() p2=Process(target=m,args=(q,)) p2.start()Pipe: 可以使用管道Pipe來(lái)進(jìn)行進(jìn)程通信

Pipe 在multiprocessing 模塊中:from multiprocessing import Pipe

Pipe的使用: 1.創(chuàng)建對(duì)象:第一個(gè)Pipe對(duì)象,第二個(gè)Pipe對(duì)象=Pipe(),返回兩個(gè)對(duì)象,第一個(gè)對(duì)象只能發(fā),第二個(gè)對(duì)象只能收 2.傳入對(duì)象:在要發(fā)送的進(jìn)程,傳入第一個(gè)Pipe對(duì)象;在要接收的進(jìn)程,傳入第二個(gè)Pipe對(duì)象Python進(jìn)程的通信Queue、Pipe實(shí)例分析 3.操作對(duì)象:【獲取元素:第一個(gè)對(duì)象.recv()】、【放入元素:第二個(gè)對(duì)象.send(元素)】 4.操作完成后關(guān)閉管道:第一個(gè)對(duì)象.close(),第一個(gè)對(duì)象.close()

from multiprocessing import Pipe,Processdef f(conn): a=[1,2,3,4] conn.send(a) conn.close()def m(conn): a=conn.recv() conn.close()if __name__=='__main__': parent_conn,child_conn=Pipe()#返回兩個(gè)值,第一個(gè)只能發(fā),第二個(gè)只能收 p1=Process(target=f,args=(child_conn,)) p2 = Process(target=m, args=(parent_conn,))# p1.start() p2.start() p1.join() p2.join()

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)入門(mén)教程》及《Python常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 镇宁| 临湘市| 铅山县| 德钦县| 三台县| 安顺市| 马公市| 将乐县| 自贡市| 桓仁| 江口县| 霍城县| 留坝县| 东阿县| 东至县| 上栗县| 澎湖县| 宁都县| 西和县| 彰武县| 山丹县| 益阳市| 吴堡县| 惠安县| 伊川县| 页游| 兰考县| 阿克苏市| 萍乡市| 定远县| 巫山县| 江西省| 通州市| 淮安市| 柳林县| 远安县| 奉化市| 谷城县| 都兰县| 遂昌县| 南安市|