程序之間的資料交換

2021-10-05 03:07:34 字數 3112 閱讀 1588

import multiprocessing

# 建立乙個訊息佇列

que = multiprocessing.queue(5)

print

(que)

#將資料儲存進佇列

for item in

range(10

):# que.put(item,true,2)

que.put_nowait(item)

注意點:

1、在建立的過程中,如果不傳參,則建立的佇列沒有資料的限制,可以存放多個

2、建立過程中傳參了,則存放的資料個數由程式設計師決定

def

put(self, obj, block=

true

, timeout=

none):

pass

defput_nowait

(self, obj)

:pass

注意點:

1、put存放資料的時候,如果沒有設定超時時間,則佇列滿的時候會阻塞程序,一直等待,直到佇列出現新的空間為止

2、如果put設定了過期時間,佇列滿的時候就報錯

3、put_nowait當插入資料的時候,如果滿了就報錯,不等待

for item in

range(10

):# que.put(item,true,2)

# 放入資料之前先判斷

ifnot que.full():

que.put_nowait(item)

print

('當前佇列的大小'

,que.qsize())

注意點:

1、qsize用來判斷佇列的大小(資料個數)

2、full用來判斷佇列是否已經存滿資料

def

get(self, block=

true

, timeout=

none):

pass

defget_nowait

(self)

:pass

#將資料從佇列中取出

for i in

range(10

):#先判斷佇列是否為空

ifnot que.empty():

# print(que.get(true,2))

print

(que.get_nowait(

))

import multiprocessing

#建立乙個訊息佇列

que = multiprocessing.queue(

)new_list =

['asd123'

,'abc123'

,'xyz123'

]def

write_data

(duilie)

:for item in new_list:

print

('此刻放入佇列的資料是'

,item)

duilie.put(item)

print

(duilie.qsize())

defread_data

(duilie)

:print

('此刻執行的是讀操作'

)print

(duilie.qsize())

ifnot duilie.empty():

print

('此刻讀出來的資料是'

,duilie.get())

if __name__ ==

'__main__'

: wp = multiprocessing.process(target=write_data,args=

(que,))

rp = multiprocessing.process(target=read_data,args=

(que,))

wp.start(

) wp.join(

) rp.start(

)注意點:

1、佇列需要進行傳遞

2、引數的傳遞需要元組

import multiprocessing

que = multiprocessing.queue(

)new_list =

['asd123'

,'abc123'

,'xyz123'

]def

write_data

(duilie)

:for item in new_list:

print

('此刻放入佇列的資料是'

,item)

duilie.put(item)

print

(duilie.qsize())

defread_data

(duilie)

:print

('此刻執行的是讀操作'

)print

(duilie.qsize())

while

true:if

not duilie.empty():

print

('此刻讀出來的資料是'

,duilie.get())

else

:break

if __name__ ==

'__main__'

: que = multiprocessing.manager(

).queue(

) pool = multiprocessing.pool(

) pool.

(write_data,args=

(que,))

pool.

(read_data,args=

(que,))

pool.close(

) pool.join(

)

注意點:

1、建立程序池之間的通訊佇列,不能直接使用queue

2、使用的是multiprocessing.manager(

).queue(

)來建立程序池的通訊佇列

多執行緒 Exchange執行緒之間的資料交換

方法為exchange.exchange 要替換的值 注 只能兩個執行緒替換 類說明 exchange的使用,兩個執行緒之間的資料交換 注 只能兩個執行緒,所以很侷限 public class useexchange seta exchange.exchange seta 交換set 處理交換後的資...

資料交換 電路交換

為什麼要資料交換 那麼有幾個問題 1.n 2鏈路問題,有n個網路要相互連線 之後就想了乙個辦法,產生交換裝置進行連線 這樣子還有個問題,距離,連通性的問題 這樣就產生了交換網路 動態分配傳輸資源 實現資料從源主機穿越交換網路到達目的機 資料交換的型別 電路交換 報文交換 分組交換 最典型電路交換網路...

資料交換技術

廣域網研究的重點就是寬頻核心交換技術。從交換技術的發展歷史看,資料交換經歷了電路交換 報文交換 分組交換和綜合業務數字交換的發展過程。分組交換實質上是在 儲存 基礎上發展起來的。它兼有電路交換和報文交換的優點。常說的分組交換也就是儲存 方式中的報文分組交換方式。包括資料報方式和虛電路方式。資料報類似...