Python:進程間的通信,進程的操作隊列

進程間的隊列:

隊列的基本操作:
入隊:將數據放到隊列尾部

出隊:從隊列的頭部取出一個元素

maxsize:隊列中能存放數據個數的上限(整數),一旦達到上限插入會導致阻塞,直到隊列中的數據被消費掉? ? ? maxsize<=0隊列大小沒有限制
?

隊列常用方法:

Queue提供了一個基本FIFO窗口,初始化隊列對象q=Queue()

q.empty()? q為空返回True? ? ? ? ? ? ?q.get() 在隊列中取值

q.put() 在隊列中放值? ? ? ? ? ? ? ? q.ful() 隊列是不是滿了

from queue import Queue
q=Queue(3)#初始化隊列對象,最多可接受三條消息
q.put('1')
q.put('2')
print(q.full())#False
q.put('3')
print(q.full())#True
#get取出
print(q.get())
print(q.get())
print(q.get())print(q.empty())#True
print('現在的消息總量是:',q.qsize())#查看消息數量
try:q.put('4',True,2)#True是block值,消息隊列沒空間寫入時,程序進入阻塞狀態,2代表阻塞時間timeout,2s后還沒空間寫入,拋出異常
except:print('full!!現有消息數量:%s'%q.qsize())

?

from multiprocessing import Process,Queue
import time,randomlist=[1,2,3,4]
#寫數據進程執行的代碼
def write(q1):for i in list:print(f'將{i}放進隊列中')q1.put(i)time.sleep(random.random())#隨機生成0到1之間的浮點數#讀數據進程執行的代碼
def read(q2):while True:if not q2.empty():info=q2.get()print(f'從隊列中獲取{info}')time.sleep(random.random())else:breakif __name__=='__main__':#實例化隊列對象q=Queue()#創建進程p1=Process(target=write,args=(q,))#先寫入p2 = Process(target=read, args=(q,))#啟動p1.start()p1.join()p2.start()p2.join()輸出結果為:
將1放進隊列中
將2放進隊列中
將3放進隊列中
將4放進隊列中
從隊列中獲取1
從隊列中獲取2
從隊列中獲取3
從隊列中獲取4

進程間的通信:

from multiprocessing import Process,Queue
import time,randomlist=[1,2,3,4]
#在列表中寫(放)數據
def write(q):for i in list:print(f'將{i}放進隊列中')q.put(i)time.sleep(random.random())#隨機生成0到1之間的浮點數#在列表中讀(取)數據
def read(q):while True:if not q.empty():info=q.get()print(f'從隊列中獲取{info}')time.sleep(random.random())else:breakif __name__=='__main__':#創建隊列對象q=Queue()#創建進程p1=Process(target=write,args=(q,))#先寫入p2 = Process(target=read, args=(q,))#啟動p1.start()p1.join()p2.start()p2.join()print('end')

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73332.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73332.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73332.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++初階】--- 類與對象(中)

1.類的默認成員函數 默認成員函數就是??沒有顯式實現&#xff0c;編譯器會?動?成的成員函數稱為默認成員函數。?個類&#xff0c;我們不寫的情況下編譯器會默認?成以下6個默認成員函數&#xff0c;我們主要需要掌握前4個&#xff0c;后兩個了解以下即可&#xff0c;默認…

python處理音頻相關的庫

1 音頻信號采集與播放 pyaudio import sys import pyaudio import wave import timeCHUNK 1024 FORMAT pyaudio.paInt16 CHANNELS 1#僅支持單聲道 RATE 16000 RECORD_SECONDS 3#更改錄音時長#錄音函數&#xff0c;生成wav文件 def record(file_name):try:os.close(file_…

[M模擬] lc2711. 對角線上不同值的數量差(對角線遍歷+前后綴分解)

文章目錄 1. 題目來源2. 題目解析 1. 題目來源 鏈接&#xff1a;2711. 對角線上不同值的數量差 前置題&#xff1a; [M模擬] lc3446. 按對角線進行矩陣排序(對角線遍歷公式推導模板題) 矩形的對角線遍歷的基礎題。 題單&#xff1a; 待補充 2. 題目解析 2025年03月25日…

設計一個基于機器學習的光伏發電功率預測模型,以Python和Scikit - learn庫為例

下面為你設計一個基于機器學習的光伏發電功率預測模型&#xff0c;以Python和Scikit - learn庫為例。此模型借助歷史氣象數據和光伏發電功率數據來預測未來的光伏發電功率。 模型設計思路 數據收集&#xff1a;收集歷史氣象數據&#xff08;像溫度、光照強度、濕度等&#xf…

洛谷 P1351 [NOIP 2014 提高組] 聯合權值(樹)

題目描述 無向連通圖 G 有 n 個點&#xff0c;n?1 條邊。點從 1 到 n 依次編號,編號為 i 的點的權值為 Wi?&#xff0c;每條邊的長度均為 1。圖上兩點 (u,v) 的距離定義為 u 點到 v 點的最短距離。對于圖 G 上的點對 (u,v)&#xff0c;若它們的距離為 2&#xff0c;則它們之間…

YoloV8訓練和平精英人物檢測模型

概述 和平精英人物檢測&#xff0c;可以識別游戲中所有人物角色&#xff0c;并通過繪制框將人物選中&#xff0c;訓練的模型僅僅具有識別功能&#xff0c;可以識別游戲中的視頻、圖片等文件&#xff0c;搭配Autox.js可以推理&#xff0c;實現實時繪制&#xff0c;但是對手機性…

智能汽車圖像及視頻處理方案,支持視頻實時拍攝特效能力

在智能汽車日新月異的今天&#xff0c;美攝科技作為智能汽車圖像及視頻處理領域的先行者&#xff0c;憑借其卓越的技術實力和前瞻性的設計理念&#xff0c;為全球智能汽車制造商帶來了一場視覺盛宴的革新。美攝科技推出智能汽車圖像及視頻處理方案&#xff0c;一個集高效性、智…

架構設計之自定義延遲雙刪緩存注解(下)

架構設計之自定義延遲雙刪緩存注解(下) 小薛博客官方架構設計之自定義延遲雙刪緩存注解(下)地址 為了保證Cache和ClearAndReloadCache的靈活性&#xff0c;特意加入EL表達式解析 1、Cache package com.xx.cache;import java.lang.annotation.*; import java.util.concurren…

rosbag|ROS中.bag數據包轉換為matlab中.mat數據類型

代碼見代碼 msg_dict中設置自定義消息類型 test_config中設置需要記錄的具體的值 test_config中topic_name以及message_type照搬plotjuggler打開時的參數 最后生成.mat文件在matlab中進行使用

基于動態 FOF(基金中的基金)策略的基金交易推薦系統的設計與實現思路

下面為你呈現一個基于動態 FOF&#xff08;基金中的基金&#xff09;策略的基金交易推薦系統的設計與實現思路&#xff0c;同時給出一個簡單的 Python 示例代碼。 系統設計 1. 需求分析 收集各類基金的歷史數據&#xff0c;涵蓋凈值、收益率、風險指標等。依據動態 FOF 策略…

搭建主從DNS、nfs、nginx

任務需求&#xff1a; 客戶端通過訪問 www.nihao.com 后&#xff0c;能夠通過 dns 域名解析&#xff0c;訪問到 nginx 服務中由 nfs 共享的首頁文件&#xff0c;內容為&#xff1a;Very good, you have successfully set up the system. 各個主機能夠實現時間同步&#xff0c;…

JS 對象轉數組,數組轉對象

數據格式 objMap : {apiP: 8000, sder: true, host: "1.111", wPort: "1335" }要求&#xff1a;將 objMap 轉化為 數組 const equipArray Object.keys(objMap ).map(key > {return {name: key,value: objMap [key]}打印結果 數組轉為對象 let equipAr…

vue - [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.

問題描述&#xff1a; vue項目中&#xff0c;對表單數組賦值時&#xff0c;控制臺拋出警告&#xff1a; 問題代碼&#xff1a; 問題分析&#xff1a; 1、Vue 要求每個虛擬 DOM 節點必須有唯一的 key。該警告信息通常出現在使用v-for循環的場景中&#xff0c;多個同級節點使用…

DeepSeek V3–0324 vs DeepSeek-V3, 排名最高非推理模型

最近DeepSeek V3 升級。 本文將帶您了解該模型的核心特性、基準表現,以及如何通過Hugging Face推理終端和OpenRouter平臺親身體驗。我們還將通過創意生成與邏輯分析兩大測試案例,直觀展示其卓越性能。 DeepSeek-V3-0324 2025年3月24日,深度求索(DeepSeek)AI正式發布了V3…

docker使用uv安裝依賴

官方使用 FastAPI 官方 Dockerfile 中用了兩次&#xff1a; RUN --mounttypecache,target/root/.cache/uv \--mounttypebind,sourceuv.lock,targetuv.lock \--mounttypebind,sourcepyproject.toml,targetpyproject.toml \uv sync --frozen --no-install-project # ? 第一次…

3.0 Disruptor的使用介紹(一)

Disruptor: 其官網定義為&#xff1a;“A High Performance Inter-Thread Messaging Library”&#xff0c;即&#xff1a;線程間的高性能消息框架&#xff0c;與Labview的生產者、消費者模型很相似。 其組成部分比較多&#xff0c;先介紹幾個常用的概念&#xff1a; …

在 Windows 系統下,將 FFmpeg 編譯為 .so 文件

1. 準備環境 確保你的 Windows 系統已安裝以下工具&#xff1a; Android Studio NDK&#xff08;Native Development Kit&#xff09; MSYS2&#xff08;用于提供類 Unix 環境&#xff09; FFmpeg 源碼 Git Bash&#xff08;可選&#xff0c;推薦使用&#xff09; 安裝 …

leetcode二叉樹3

404.左葉子之和 給定二叉樹的根節點 root &#xff0c;返回所有左葉子之和。 示例 1&#xff1a; 輸入: root [3,9,20,null,null,15,7] 輸出: 24 解釋: 在這個二叉樹中&#xff0c;有兩個左葉子&#xff0c;分別是 9 和 15&#xff0c;所以返回 24示例 2: 輸入: root [1] 輸…

QT網絡通信的接口與使用

文章目錄 前言1.服務端實現流程1.1步驟 1&#xff1a;創建 QTcpServer 并監聽端口1.2步驟 2&#xff1a;處理新連接請求1.3步驟 3&#xff1a;接收客戶端數據1.4步驟 4&#xff1a;處理客戶端斷開 2.客戶端實現流程2.1步驟 1&#xff1a;創建 QTcpSocket 并連接服務器2.2步驟 2…