python多執行緒中訊息佇列如何實現?
我們在使用多執行緒時候,有沒有聽過“訊息佇列”這個名詞呢?先從字面上跟大家說下,佇列就是盡然有序的排隊,訊息,肯定是跟傳遞有關,這樣大家組合起來就應該知道什麼是訊息佇列了吧,那就是把收取的內容進行井然有序的傳遞下去,在大家理解的基礎上,看下文內容吧~
執行緒間通訊:訊息佇列
主要方式:
透過變數,直接讀寫;透過訊息佇列;
訊息佇列:
from queue import Queue
Queue與多程式中的類似,主要方法:
方法說明:
給大家演示例項:
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python實現執行緒安全佇列Python執行緒佇列
- python 的執行緒池如何獲取 work 佇列中的訊息數量Python執行緒佇列
- 使用Python佇列和多執行緒實現生產者消費者Python佇列執行緒
- java多執行緒:執行緒池原理、阻塞佇列Java執行緒佇列
- Redis實現訊息佇列Redis佇列
- 如何實現MQ佇列訊息監控MQ佇列
- python多執行緒中:如何關閉執行緒?Python執行緒
- 多執行緒學習-Disruptor佇列執行緒佇列
- 如何實現多執行緒執行緒
- 從零開始學Python(八):Python多執行緒和佇列Python執行緒佇列
- 多執行緒程式設計-分析阻塞佇列的原始碼實現執行緒程式設計佇列原始碼
- iOS 多執行緒--GCD 序列佇列、併發佇列以及同步執行、非同步執行iOS執行緒GC佇列非同步
- 執行緒安全佇列(使用互斥鎖進行實現)執行緒佇列
- JavaScript如何實現多執行緒?JavaScript執行緒
- 剖析 Redis List 訊息佇列的三種消費執行緒模型Redis佇列執行緒模型
- Java多執行緒消費訊息Java執行緒
- 使用Spring Boot實現訊息佇列Spring Boot佇列
- Java BlockingQueue 阻塞佇列[用於多執行緒]JavaBloC佇列執行緒
- Python使用RocketMQ(訊息佇列)PythonMQ佇列
- Python簡單實現多執行緒例子Python執行緒
- 主佇列&主執行緒佇列執行緒
- Redis 竟然能用 List 實現訊息佇列Redis佇列
- 深入淺出Java多執行緒(十三):阻塞佇列Java執行緒佇列
- 多執行緒,執行緒類三種方式,執行緒排程,執行緒同步,死鎖,執行緒間的通訊,阻塞佇列,wait和sleep區別?執行緒佇列AI
- 訊息佇列系列一:訊息佇列應用佇列
- Redis 學習筆記(六)Redis 如何實現訊息佇列Redis筆記佇列
- 訊息佇列中的Oracle佇列Oracle
- Python實現投遞多執行緒任務Python執行緒
- Python中的多工:多執行緒Python執行緒
- 訊息佇列佇列
- Go中使用Redis實現訊息佇列教程GoRedis佇列
- java多執行緒8:阻塞佇列與Fork/Join框架Java執行緒佇列框架
- Java中如何實現執行緒呢?Java執行緒
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- PHP基於Redis訊息佇列實現的訊息推送的方法PHPRedis佇列
- Redis 使用 List 實現訊息佇列能保證訊息可靠麼?Redis佇列
- 除了訊息佇列,以下這些高階技術也可用於獲取執行緒執行結果佇列執行緒