python多執行緒中訊息佇列如何實現?

westwolf發表於2021-09-11

python多執行緒中訊息佇列如何實現?

我們在使用多執行緒時候,有沒有聽過“訊息佇列”這個名詞呢?先從字面上跟大家說下,佇列就是盡然有序的排隊,訊息,肯定是跟傳遞有關,這樣大家組合起來就應該知道什麼是訊息佇列了吧,那就是把收取的內容進行井然有序的傳遞下去,在大家理解的基礎上,看下文內容吧~

執行緒間通訊:訊息佇列

主要方式:

透過變數,直接讀寫;透過訊息佇列;

訊息佇列:

from queue import Queue

Queue與多程式中的類似,主要方法:

方法說明:

python多執行緒中訊息佇列如何實現?

給大家演示例項:

import threading
from queue import Queue
#訊息佇列
msgq = Queue()
 
def recvmsg(*args, **kwargs):
    #執行緒函式,接受訊息
    while True:
        msg = msgq.get()
        print('rev msg:', msg)
        if msg == 'q':
            break
 
def sendmsg():
    #傳送訊息
    while True:
        msg = input('enter:')
        msgq.put(msg)
        if msg == 'q':
            break
 
if __name__ == '__main__':
    #建立執行緒
    t1 = threading.Thread(target=recvmsg)
    t1.start()
    sendmsg()
t1.join()

結果:

enter:1
rev msg: 1
enter:2
rev msg: 2
enter:3
rev msg: 3
enter:q
rev msg: q

訊息佇列是我們經常要要用到的,靈活的掌握使用是至關重要的,大家如果正在學習執行緒,關於訊息佇列一定是首當其衝要去了解哦~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4662/viewspace-2832187/,如需轉載,請註明出處,否則將追究法律責任。

相關文章