前言:之前說過,多個程序之間是不能共享全域性變數的,那麼怎麼解決這個問題呢?通過佇列queue去解決這個問題
1、看**演示,解釋看註解:
#!/usr/bin/env python
#coding=utf-8
#author:劉仲
#datetime:2018/7/25 16:31
#software: pycharm
import
multiprocessing
"""定義乙個全域性變數num,執行緒函式test1修改全域性變數num然後放進num1空列表,然後呼叫佇列物件中的put方法
將num1列表放進佇列中,執行緒函式test2呼叫佇列物件中的get方法獲取到佇列中資料,這就完成了程序之間的通訊,
也就解決了程序之間不能共享全域性變數的問題
"""num =0
deftest1(q):
global
num num1 =list()
for i in range(5):
q.put(num1)
deftest2(q):
while
true: # 迴圈獲取佇列裡面的值
if q.empty(): # 當佇列裡沒有資料時,即全部拿完了,就退出迴圈
break
data =q.get()
(data)
defmain():
#建立佇列物件,然後將物件以實參傳給子程序函式
q = multiprocessing.queue() #
括號裡可以加數字,表示佇列裡最多能放多少個資料
t1 = multiprocessing.process(target=test1, args=(q,))
t2 = multiprocessing.process(target=test2, args=(q,))
t1.start()
t1.join()
t2.start()
if__name__ == '
__main__':
main()
執行結果如下:
[1, 2, 3, 4, 5]
網路程式設計之 程序
首先博主在這裡先告訴大家博主學習的書籍是由 韓 韓聖雨 著 金國哲 譯 的 tcp ip網路程式設計,把網路變成寫的通俗易懂。那麼我們就開始吧!我們就能利用時鐘中斷讓各個程式來占用cpu的一部分從而完成併發 由於人的視覺間隔較大,所以在我們看來這就是一起執行的,但是在計算機內部不是這樣的,計算及內部...
網路程式設計 程序 3 程序之間不共享全域性變數
前言 之前說的多個執行緒之間是共享全域性變數的,但是程序之間是不共享全域性變數的 程序函式函式test1修改全域性變數list列表,程序函式test2列印一下全域性變數list list 11,12 deftest1 print tset1中list值 s str list deftest2 pri...
併發程式設計多程序之佇列
程序彼此之間互相隔離,要實現程序間通訊 ipc multiprocessing模組支援兩種形式 佇列和管道,這兩種方式都是使用訊息傳遞的。建立佇列的類 底層就是以管道和鎖定的方式實現 queue maxsize 建立共享的程序佇列。queue是多程序安全的佇列,可以使用queue實現多程序之間的資料...