日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python中使用Queue、Pipe怎么實現(xiàn)進(jìn)程通信-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)Python中使用Queue、Pipe怎么實現(xiàn)進(jìn)程通信,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站是專業(yè)的博山網(wǎng)站建設(shè)公司,博山接單;提供網(wǎng)站制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行博山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

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

  • 進(jìn)程的資源空間是相互獨立的,一般而言是不能相互訪問的。但很多情況下進(jìn)程間需要互相通信,來完成系統(tǒng)的某項功能。進(jìn)程通過與內(nèi)核及其它進(jìn)程之間的互相通信來協(xié)調(diào)它們的行為。

  • 通信方法:

    • 數(shù)據(jù)傳輸:一個進(jìn)程將它的數(shù)據(jù)發(fā)送給另一個進(jìn)程【如socket一般,把需要通信的數(shù)據(jù)傳輸給對方】

    • 管道:使用一片獨立的區(qū)域【不在雙方的資源空間中】,像一個有兩個口的倉庫一樣,廠家負(fù)責(zé)在東門把產(chǎn)品放到倉庫,司機(jī)負(fù)責(zé)在西門拉走產(chǎn)品

    • 資源共享:約定一片區(qū)域,雙方都可以隨意取放

    • 消息隊列:這也是一個獨立的區(qū)域,足夠權(quán)限的進(jìn)程可以向隊列中添加消息,被賦予讀權(quán)限的進(jìn)程則可以讀走隊列中的消息


Queue:
  • 可以使用隊列multiprocessing.Queue來進(jìn)行進(jìn)程通信

Queue 在multiprocessing 模塊中:from multiprocessing import Queue

  • Queue的使用:

    • 1.創(chuàng)建對象:Queue對象=Queue()

    • 2.傳入對象:要在主進(jìn)程外使用Queue對象,需要作為參數(shù)傳入Python中使用Queue、Pipe怎么實現(xiàn)進(jìn)程通信

    • 3.操作對象:【獲取元素:Queue對象.get()】、【放入元素:Queue對象.put(元素)】

#Queue在multiprocessing中
from multiprocessing import Queue,Process

def 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來進(jìn)行進(jìn)程通信

Pipe 在multiprocessing 模塊中:from multiprocessing import Pipe

  • Pipe的使用:

    • 1.創(chuàng)建對象:第一個Pipe對象,第二個Pipe對象=Pipe(),返回兩個對象,第一個對象只能發(fā),第二個對象只能收

    • 2.傳入對象:在要發(fā)送的進(jìn)程,傳入第一個Pipe對象;在要接收的進(jìn)程,傳入第二個Pipe對象Python中使用Queue、Pipe怎么實現(xiàn)進(jìn)程通信

    • 3.操作對象:【獲取元素:第一個對象.recv()】、【放入元素:第二個對象.send(元素)】

    • 4.操作完成后關(guān)閉管道:第一個對象.close(),第一個對象.close()

from multiprocessing import Pipe,Process

def 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()#返回兩個值,第一個只能發(fā),第二個只能收
  p1=Process(target=f,args=(child_conn,))
  p2 = Process(target=m, args=(parent_conn,))#
  p1.start()
  p2.start()
  p1.join()
  p2.join()

看完上述內(nèi)容,你們對Python中使用Queue、Pipe怎么實現(xiàn)進(jìn)程通信有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


當(dāng)前名稱:Python中使用Queue、Pipe怎么實現(xiàn)進(jìn)程通信-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://www.dlmjj.cn/article/hhhsh.html