




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
進(jìn)程間的通信進(jìn)程間的通信摘要每個(gè)進(jìn)程各自有不同的用戶地址空間,任何一個(gè)進(jìn)程的全局變量在另一個(gè)進(jìn)程中都看不到,所以進(jìn)程之間要交換數(shù)據(jù)必須通過內(nèi)核,在內(nèi)核中開辟一塊緩沖區(qū),進(jìn)程A把數(shù)據(jù)從用戶空間拷到內(nèi)核緩沖區(qū),進(jìn)程B再從內(nèi)核緩沖區(qū)把數(shù)據(jù)讀走,內(nèi)核提供的這種機(jī)制稱為進(jìn)程間通信。進(jìn)程彼此之間互相隔離,要實(shí)現(xiàn)進(jìn)程間通信(IPC),multiprocessing模塊支持兩種形式:隊(duì)列和管道,這兩種方式都是使用消息傳遞的。關(guān)鍵詞隊(duì)列管道11.進(jìn)程間通信(IPC)方式一:隊(duì)列(推薦使用)2隊(duì)列先進(jìn)先出,棧后進(jìn)先出創(chuàng)建隊(duì)列的類Queue([maxsize]):創(chuàng)建共享的進(jìn)程隊(duì)列,Queue是多進(jìn)程安全的隊(duì)列,可以使用Queue實(shí)現(xiàn)多進(jìn)程之間的數(shù)據(jù)傳遞。參數(shù)介紹:maxsize是隊(duì)列中允許最大項(xiàng)數(shù),省略則無大小限制q是隊(duì)列類的實(shí)例q.put方法用以插入數(shù)據(jù)到隊(duì)列中put方法還有兩個(gè)可選參數(shù):blocked和timeout。如果blocked為True(默認(rèn)值),并且timeout為正值,該方法會(huì)阻塞timeout指定的時(shí)間,直到該隊(duì)列有剩余的空間。如果超時(shí),會(huì)拋出Queue.Full異常。如果blocked為False,但該Queue已滿,會(huì)立即拋出Queue.Full異常。q.get方法可以從隊(duì)列讀取并且刪除一個(gè)元素。get方法有兩個(gè)可選參數(shù):blocked和timeout。方法介紹:34方法介紹:
如果blocked為True(默認(rèn)值),并且timeout為正值,那么在等待時(shí)間內(nèi)沒有取到任何元素,會(huì)拋出Queue.Empty異常。如果blocked為False,有兩種情況存在,如果Queue有一個(gè)值可用,則立即返回該值,否則,如果隊(duì)列為空,則立即拋出Queue.Empty異常.q.empty():調(diào)用此方法時(shí)q為空則返回True,該結(jié)果不可靠,比如在返回True的過程中,如果隊(duì)列中又加入了項(xiàng)目。q.full():調(diào)用此方法時(shí)q已滿則返回True,該結(jié)果不可靠,比如在返回True的過程中,如果隊(duì)列中的項(xiàng)目被取走。q.qsize():返回隊(duì)列中目前項(xiàng)目的正確數(shù)量,結(jié)果也不可靠,理由同q.empty()和q.full()一樣5示例:輸出結(jié)果:62.生產(chǎn)者消費(fèi)者模型·什么是生產(chǎn)者消費(fèi)者模式?生產(chǎn)者消費(fèi)者模式是通過一個(gè)容器來解決生產(chǎn)者和消費(fèi)者的強(qiáng)耦合問題。生產(chǎn)者和消費(fèi)者彼此之間不直接通訊,而通過阻塞隊(duì)列來進(jìn)行通訊,所以生產(chǎn)者生產(chǎn)完數(shù)據(jù)之后不用等待消費(fèi)者處理,直接扔給阻塞隊(duì)列,消費(fèi)者不找生產(chǎn)者要數(shù)據(jù),而是直接從阻塞隊(duì)列里取,阻塞隊(duì)列就相當(dāng)于一個(gè)緩沖區(qū),平衡了生產(chǎn)者和消費(fèi)者的處理能力?!槭裁匆褂蒙a(chǎn)者和消費(fèi)者模式在進(jìn)程世界里,生產(chǎn)者就是生產(chǎn)數(shù)據(jù)的進(jìn)程,消費(fèi)者就是消費(fèi)數(shù)據(jù)的進(jìn)程。在多進(jìn)程開發(fā)當(dāng)中,如果生產(chǎn)者處理速度很快,而消費(fèi)者處理速度很慢,那么生產(chǎn)者就必須等待消費(fèi)者處理完,才能繼續(xù)生產(chǎn)數(shù)據(jù)。同樣的道理,如果消費(fèi)者的處理能力大于生產(chǎn)者,那么消費(fèi)者就必須等待生產(chǎn)者。為了解決這個(gè)問題于是引入了生產(chǎn)者和消費(fèi)者模式。在并發(fā)編程中使用生產(chǎn)者和消費(fèi)者模式能夠解決絕大多數(shù)并發(fā)問題。該模式通過平衡生產(chǎn)進(jìn)程和消費(fèi)進(jìn)程的工作能力來提高程序的整體處理數(shù)據(jù)的速度。72.生產(chǎn)者消費(fèi)者模型示例:基于隊(duì)列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型8輸出結(jié)果:93.進(jìn)程間通信(IPC)方式二:管道與隊(duì)列的一發(fā)一收不同,管道是全雙工的,也就是兩個(gè)進(jìn)程之間可以相互通信。創(chuàng)建管道的類:Pipe([duplex]):在進(jìn)程之間創(chuàng)建一條管道,并返回元組(conn1,conn2),其中conn1,conn2表示管道兩端的連接對象,強(qiáng)調(diào)一點(diǎn):必須在產(chǎn)生Process對象之前產(chǎn)生管道參數(shù)介紹:dumplex:默認(rèn)管道是全雙工的,如果將duplex射成False,conn1只能用于接收,conn2只能用于發(fā)送。10方法介紹:conn1.recv():接收conn2.send(obj)發(fā)送的對象。如果沒有消息可接收,recv方法會(huì)一直阻塞。如果連接的另外一端已經(jīng)關(guān)閉,那么recv方法會(huì)拋出EOFError。conn1.send(obj):通過連接發(fā)送對象。obj是與序列化兼容的任意對象conn1.close():關(guān)閉連接。如果conn1被垃圾回收,將自動(dòng)調(diào)用此方法conn1.fileno():返回連接使用的整數(shù)文件描述符conn1.poll([timeout]):如果連接上的數(shù)據(jù)可用,返回True。ti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房施工質(zhì)量保證與進(jìn)度控制協(xié)議
- 車輛事故責(zé)任免除與車輛理賠服務(wù)協(xié)議
- 江蘇省南京市五校聯(lián)盟2024-2025學(xué)年高二下學(xué)期期中考試 化學(xué) 含答案
- 江蘇省南京市五校聯(lián)盟2024-2025學(xué)年高二下學(xué)期期中考試 物理 含答案
- 跨國車輛進(jìn)口及報(bào)關(guān)代理服務(wù)合同范本
- 專用車輛安全使用責(zé)任書
- 車況全面檢測車輛租賃保障協(xié)議
- 約束與約束反力教案創(chuàng)新杯說課大賽國賽說課課件
- 集成電路芯片全球采購戰(zhàn)略聯(lián)盟協(xié)議范本
- 高新技術(shù)產(chǎn)業(yè)園區(qū)廠房產(chǎn)權(quán)轉(zhuǎn)移合同范本
- 國學(xué)導(dǎo)論·巴蜀文化課件
- 旅游出入境與交通管理法規(guī)制度課件
- 史上最全區(qū)塊鏈詳解課件
- 能源計(jì)量器具配備和管理
- 《食品經(jīng)營許可證》申請報(bào)告書空白模板
- 國家開放大學(xué)《監(jiān)督學(xué)》形考任務(wù)( 1-4)試題和答案解析
- 《遺愛寺》-完整版課件
- 三相三線電能表
- 試卷交接簽字單
- 加油站相鄰企業(yè)安全應(yīng)急救援互助協(xié)議
- 傳媒公司合作合同
評論
0/150
提交評論