網路程式設計 程序 4 佇列完成程序之間的通訊

2022-03-10 13:52:37 字數 1145 閱讀 1401

前言:之前說過,多個程序之間是不能共享全域性變數的,那麼怎麼解決這個問題呢?通過佇列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()

print

(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實現多程序之間的資料...