




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第13章-進(jìn)程與線程馬馳率風(fēng),羊致清和本章目標(biāo)了解什么是程序與進(jìn)程掌握創(chuàng)建進(jìn)程的方式掌握進(jìn)程之間的通信了解進(jìn)程與線程的概述掌握創(chuàng)建線程的方式掌握線程之間的通信方式掌握生產(chǎn)者與消費(fèi)者模式馬馳率風(fēng),羊致清和初識(shí)程序與進(jìn)程程序英文單詞為Program,是指一系列有序指令的集合,使用編程語言所編寫,用于實(shí)現(xiàn)一定的功能馬馳率風(fēng),羊致清和初識(shí)程序與進(jìn)程進(jìn)程進(jìn)程則是指啟動(dòng)后的程序,系統(tǒng)會(huì)為進(jìn)程分配內(nèi)存空間馬馳率風(fēng),羊致清和創(chuàng)建進(jìn)程的方式第一種創(chuàng)建進(jìn)程的語法構(gòu):
Process(group=None,target,name,args,kwargs)參數(shù)說明:group:表示分組,實(shí)際上不使用,值默認(rèn)為None即可target:表示子進(jìn)程要執(zhí)行的任務(wù),支持函數(shù)名name:表示子進(jìn)程的名稱args:表示調(diào)用函數(shù)的位置參數(shù),以元組的形式進(jìn)行傳遞kwargs:表示調(diào)用函數(shù)的關(guān)鍵字參數(shù),以字典的形式進(jìn)行傳遞馬馳率風(fēng),羊致清和創(chuàng)建進(jìn)程的方式方法/屬性名稱功能描述name當(dāng)前進(jìn)程實(shí)例別名,默認(rèn)為Process-Npid當(dāng)前進(jìn)程對(duì)象的PID值is_alive()進(jìn)程是否執(zhí)行完,沒執(zhí)行完結(jié)果為True,否則為Falsejoin(timeout)等待結(jié)束或等待timeout秒start()啟動(dòng)進(jìn)程run()如果沒有指定target參數(shù),則啟動(dòng)進(jìn)程后,會(huì)調(diào)用父類中的run方法terminate()強(qiáng)制終止進(jìn)程馬馳率風(fēng),羊致清和創(chuàng)建進(jìn)程的方式第二種創(chuàng)建進(jìn)程的語法構(gòu):
class子進(jìn)程(Process):pass馬馳率風(fēng),羊致清和Pool進(jìn)程池進(jìn)程池的原理是:創(chuàng)建一個(gè)進(jìn)程池,并設(shè)置進(jìn)程池中最大的進(jìn)程數(shù)量。假設(shè)進(jìn)程池中最大的進(jìn)程數(shù)為3,現(xiàn)在有10個(gè)任務(wù)需要執(zhí)行,那么進(jìn)程池一次可以執(zhí)行3個(gè)任務(wù),4次即可完成全部任務(wù)的執(zhí)行。創(chuàng)建進(jìn)程池的語法結(jié)構(gòu):
進(jìn)程池對(duì)象=Pool(N)馬馳率風(fēng),羊致清和Pool進(jìn)程池方法名功能描述apply_async(func,args,kwargs)使用非阻塞方式調(diào)用函數(shù)funcapply(func,args,kwargs)使用阻塞方式調(diào)用函數(shù)funcclose()關(guān)閉進(jìn)程池,不再接收新任務(wù)terminate()不管任務(wù)是否完成,立即終止join()阻塞主進(jìn)程,必須在terminate()或close()之后使用馬馳率風(fēng),羊致清和并發(fā)和并行并發(fā)是指兩個(gè)或多個(gè)事件同一時(shí)間間隔發(fā)生,多個(gè)任務(wù)被交替輪換著執(zhí)行,比如A事件是吃蘋果,在吃蘋果的過程中有快遞員敲門讓你收下快遞,收快遞就是B事件,那么收完快遞繼續(xù)吃沒吃完的蘋果。這就是并發(fā)。馬馳率風(fēng),羊致清和并發(fā)和并行并行指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生,多個(gè)任務(wù)在同一時(shí)刻在多個(gè)處理器上同時(shí)執(zhí)行。比如A事件是泡腳,B事件是打電話,C事件是記錄電話內(nèi)容,這三件時(shí)則可以在同一時(shí)刻發(fā)生,這就是并行。馬馳率風(fēng),羊致清和進(jìn)程之間的通信100多個(gè)進(jìn)程之間數(shù)據(jù)可以共享嗎?進(jìn)程A進(jìn)程Baa+=30a-=50馬馳率風(fēng),羊致清和進(jìn)程之間的通信各進(jìn)程之間的數(shù)據(jù)操作馬馳率風(fēng),羊致清和進(jìn)程之間的通信進(jìn)程之間可以通過隊(duì)列(Queue)進(jìn)行通信,隊(duì)列是一種先進(jìn)先出(FirstInFirstOut)的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建隊(duì)列的語法結(jié)構(gòu):
隊(duì)列對(duì)象=Queue(N)馬馳率風(fēng),羊致清和進(jìn)程之間的通信方法名稱功能描述qsize()獲取當(dāng)前隊(duì)列包含的消息數(shù)量empty()判斷隊(duì)列是否為空,為空結(jié)果為True,否則為Falsefull()判斷隊(duì)列是否滿了,滿結(jié)果為True,否則為Falseget(block=True)獲取隊(duì)列中的一條消息,然后從隊(duì)列中移除,block默認(rèn)值為Trueget_nowait()相當(dāng)于get(block=False),消息隊(duì)列為空時(shí),拋出異常put(item,block=True)將item消息放入隊(duì)列,block默認(rèn)為Trueput_nowait(item)相當(dāng)于put(item,block=False)馬馳率風(fēng),羊致清和進(jìn)程之間的通信使用隊(duì)列實(shí)現(xiàn)進(jìn)程之間通信的原理是什么呢?馬馳率風(fēng),羊致清和線程線程線程是CPU可調(diào)度的最小單位,被包含在進(jìn)程中,是進(jìn)程中實(shí)際的運(yùn)作單位。一個(gè)進(jìn)程中可以擁有N多個(gè)線程并發(fā)執(zhí)行,而每個(gè)線程并行執(zhí)行不同的任務(wù)。程序進(jìn)程2進(jìn)程1進(jìn)程3線程A線程B線程C馬馳率風(fēng),羊致清和創(chuàng)建線程的方式函數(shù)式創(chuàng)建線程的語法結(jié)構(gòu): t=Thread(group,target,name,args,kwargs)參數(shù)說明:group:創(chuàng)建線程對(duì)象的進(jìn)程組target:創(chuàng)建的線程對(duì)象所要執(zhí)行的目標(biāo)函數(shù)name:創(chuàng)建線程對(duì)象的名稱,默認(rèn)為“Tread-n”args:用元組以位置參數(shù)的形式傳入target對(duì)應(yīng)函數(shù)的參數(shù)kwargs:用字典以關(guān)鍵字參數(shù)的形式傳入target對(duì)應(yīng)函數(shù)的參數(shù)馬馳率風(fēng),羊致清和創(chuàng)建線程的方式使用Thread子類創(chuàng)建線程的操作步驟是:自定義類繼承threading模塊下的Thread類實(shí)現(xiàn)run方法馬馳率風(fēng),羊致清和線程之間的通信線程之間的數(shù)據(jù)可以共享嗎?100線程A線程Baa+=30a-=50馬馳率風(fēng),羊致清和線程之間的通信線程之間數(shù)據(jù)共享分析圖馬馳率風(fēng),羊致清和線程操作共享數(shù)據(jù)的安全性問題50ticket全局變量線程A線程B線程C馬馳率風(fēng),羊致清和線程操作共享數(shù)據(jù)的安全性問題共享數(shù)據(jù)線程A鎖定狀態(tài)共享數(shù)據(jù)非鎖定狀態(tài)acquire()方法release()方法Lock馬馳率風(fēng),羊致清和生產(chǎn)者與消費(fèi)者模式生產(chǎn)者與消費(fèi)者模式是線程模型中的經(jīng)典問題,與編程語言無關(guān)。當(dāng)程序中出現(xiàn)了明確的兩類任務(wù),一個(gè)任務(wù)負(fù)責(zé)生產(chǎn)數(shù)據(jù),一個(gè)任務(wù)負(fù)責(zé)處理生產(chǎn)的數(shù)據(jù)時(shí)就可以使用該模式。馬馳率風(fēng),羊致清和生產(chǎn)者與消費(fèi)者模式Python內(nèi)置模塊queue中的Queue類方法名稱功能描述put(item)向隊(duì)列中放置數(shù)據(jù),如果隊(duì)列為滿,則阻塞get()從隊(duì)列中取走數(shù)據(jù),如果隊(duì)列為空,則阻塞join()如果隊(duì)列不為空,則等待隊(duì)列變?yōu)榭誸ask_done()消費(fèi)者從隊(duì)列中取走一項(xiàng)數(shù)據(jù),當(dāng)隊(duì)列變?yōu)榭諘r(shí),喚醒調(diào)用join()的線程馬馳率風(fēng),羊致清和本章總結(jié)程序:是指一系列有序指令的集合進(jìn)程:?jiǎn)?dòng)后的程序稱為進(jìn)程,系統(tǒng)會(huì)為進(jìn)程分配內(nèi)存空間。創(chuàng)建進(jìn)程的語法結(jié)構(gòu)Process(group=None,target,name,args,kwargs)進(jìn)程池:當(dāng)需要上百、上千個(gè)進(jìn)程的時(shí)候,就可以使用進(jìn)程池Pool創(chuàng)建進(jìn)程池的語法結(jié)構(gòu)進(jìn)程池對(duì)象=Pool(N)并發(fā):是指兩個(gè)或多個(gè)事件同一時(shí)間間隔發(fā)生,多個(gè)任務(wù)被交替輪換著執(zhí)行并行:是指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生,多個(gè)任務(wù)在同一時(shí)刻在多個(gè)處理器上同時(shí)執(zhí)行馬馳率風(fēng),羊致清和本章總結(jié)進(jìn)程之間不存在共享數(shù)據(jù),但可以使用隊(duì)列進(jìn)行通信線程是CPU可調(diào)度的最小單位,被包含在進(jìn)程中,是進(jìn)程中實(shí)際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外活動(dòng)夏季防暑降溫措施
- 2024-2025學(xué)年度第二學(xué)期國際交流計(jì)劃
- 未來的學(xué)校生活想象日記想象與周記結(jié)合(14篇)
- 基于GDC-DZSB雙層電解質(zhì)的固體氧化物燃料電池制備與性能研究
- 伴MR基因突變的新診斷成人NPM1+AML的臨床特征與預(yù)后分析
- 內(nèi)修飾酰胺大環(huán)的分子識(shí)別及其在尿酸檢測(cè)和分離純化方面的應(yīng)用
- 基于深度學(xué)習(xí)算法的心音心電診斷系統(tǒng)的研究與實(shí)現(xiàn)
- 基于多元時(shí)間序列的船舶軌跡預(yù)測(cè)與關(guān)聯(lián)方法研究
- 科技在班主任管理中的應(yīng)用心得體會(huì)
- 寫給雷利哥哥的一封信450字(12篇)
- 02J915 公用建筑衛(wèi)生間
- 混凝土攪拌站安全操作技術(shù)交底
- 獸用生物制品保藏、運(yùn)輸管理和相應(yīng)的應(yīng)急預(yù)案制度
- 水域救援課件教學(xué)課件
- 學(xué)術(shù)論文文獻(xiàn)閱讀與機(jī)助漢英翻譯智慧樹知到答案2024年重慶大學(xué)
- (初級(jí))航空油料特設(shè)維修員(五級(jí))理論考試題庫-上(單選題)
- 尾礦庫安全規(guī)程
- 互聯(lián)網(wǎng)+時(shí)代電商助農(nóng)模式的優(yōu)化策略:以S縣為例9000字(論文)
- 《醫(yī)療器械監(jiān)督管理?xiàng)l例》知識(shí)競(jìng)賽考試題庫300題(含答案)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 2024年上海市普通高中學(xué)業(yè)水平等級(jí)性考試化學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論