




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、牙齒課件包含演示、樣本、代碼、問題銀杏、視頻、聲音等,北風(fēng)網(wǎng)和講師都具備完整的知識產(chǎn)權(quán)功能。只有善意學(xué)習(xí)者可以用于本課程用途,在課程范圍內(nèi)傳播第三方將被渡邊杏。其他人或機構(gòu)將渡邊杏盜版、復(fù)制、仿造其中的想法和內(nèi)容,我們保留通過所有法律手段追究違反者的權(quán)利。課程詳細信息包括:北風(fēng)教育官方網(wǎng)站:法律聲明,上海市田徑網(wǎng)絡(luò)技術(shù)有限公司,AI實戰(zhàn)工程師,python共同模塊演示者:榴蓮,您想將字符串時間2017-10-10 2:400更改為Time=2017/10/10 23:403:00 3,例如Time=2017-10-10 23:403:00將當前時間戳格式副本導(dǎo)入到指定的格式日期。4.得到3天前
2、的時間。1.發(fā)展背景2。流程和線程之間的差異3。python多線程模塊threading 4。python多進程模塊multiprocessing 5。隊列模塊Linux,1。開發(fā)背景-調(diào)度作業(yè),大部分操作系統(tǒng)(如www)作業(yè)運行的短時間稱為時間片,作業(yè)運行的狀態(tài)稱為運行狀態(tài),作業(yè)運行一段時間后強制掛起,以便執(zhí)行以下操作:暫停的作業(yè)處于就緒狀態(tài),等待下一個時間片的到來。(David assell,Northern Exposure(美國電視電視劇),工作任務(wù))CPU的執(zhí)行效率很高,時間片很短,給人的感覺是各個任務(wù)之間快速切換,多個任務(wù)同時進行,這就是我們所說的并發(fā)(在一個時間間隔內(nèi),多個任務(wù)同
3、時進行)。1 .開發(fā)背景-流程操作系統(tǒng)負責(zé)電腦管理員、任務(wù)日程、資源的分配和管理,統(tǒng)領(lǐng)整個電腦硬件。應(yīng)用程序節(jié)目方面是具有在操作系統(tǒng)上運行的功能的程序。流程是具有特定獨立功能的程序在一個數(shù)據(jù)集上動態(tài)運行的流程,是操作系統(tǒng)資源分配和調(diào)度的獨立單元,是應(yīng)用節(jié)目運行的載體。過程是抽象的概念,并沒有統(tǒng)一的標準定義。流程通常由三部分組成:節(jié)目、數(shù)據(jù)集和流程控制塊。程序用于說明進程要執(zhí)行的功能的是控制進程執(zhí)行的命令集。數(shù)據(jù)集是運行程序所需的數(shù)據(jù)和工作區(qū)。包含進程的描述性信息和控制信息的節(jié)目控制塊(PCB)是進程存在的唯一標志。過程的特征:動態(tài):過程是程序的執(zhí)行過程,短暫、有生命、動態(tài)發(fā)生、動態(tài)消亡。并發(fā):
4、所有進程可以與其他進程同時運行。獨立性:流程是系統(tǒng)分配和保留資源的獨立單位。結(jié)構(gòu):流程由三部分組成:節(jié)目、數(shù)據(jù)和流程控制塊。早期操作系統(tǒng)沒有線程的概念牙齒。流程是可以獨立于資源運行的最小單位,也是節(jié)目運行的最小單位。任務(wù)調(diào)度采用了時間切片旋轉(zhuǎn)的搶占調(diào)度方法,進程是任務(wù)調(diào)度的最小單位,每個進程都有唯一的內(nèi)存片段,因此進程間內(nèi)存地址是隔離的。隨后,隨著計算機的發(fā)展,對CPU的要求越來越高,跨進程的切換開銷也越來越大,無法滿足日益復(fù)雜的程序的要求。所以我發(fā)明了線程。線程是節(jié)目執(zhí)行的單一順序控制流程、節(jié)目執(zhí)行流的最小單位、處理器計劃和調(diào)度的基本單位。一個進程可以有一個或多個線程,每個線程之間可以共享程
5、序的內(nèi)存空間(即進程的內(nèi)存空間)。標準線程由線程ID、當前命令指針(PC)、寄存器和堆棧組成。進程由內(nèi)存空間(代碼、數(shù)據(jù)、進程空間、開放檔案)和一個或多個線程組成。1 .開發(fā)背景-螺紋,2 .進程和線程之間的差異,1 .線程是節(jié)目執(zhí)行的最小單位,進程是操作系統(tǒng)分配資源的最小單位。2.進程由一個進程中的一個或多個線程組成,這些線程是代碼的其他執(zhí)行路徑。3.進程獨立于徐璐,但同一進程下的線程與程序的內(nèi)存空間(包括片段、數(shù)據(jù)集、堆等)共享某些進程級資源(例如打開檔案和信號),一個進程中的線程對另一個進程不可見。4.調(diào)度和切換:比線程上下文切換進程上下文切換快得多??傊?,線程和進程都是抽象的概念,線程
6、是比進程小的抽象,可以同時用于實現(xiàn)線程和進程。2 .進程和線程之間的差異1,2。進程和線程之間的差異2。如果需要在單線程中處理多個任務(wù),則必須確定處理器執(zhí)行的順序,并按牙齒順序執(zhí)行任務(wù)。如果我們創(chuàng)建了兩個茄子任務(wù):聽音樂和看電影。單線程可以按先后順序執(zhí)行兩個牙齒茄子任務(wù)。3 .單線程,3.python的多線程,多線程到python,但是遺憾的是,Python僅支持一個線程執(zhí)行(為什么?查看下一頁PPT)。3 .python多線程模塊,thread模塊threading模塊threading模塊推薦threading模塊的主要原因是thread不支持守護程序線程。主線程終止后,所有子線程都將強制
7、終止,無論其是否仍在運行。有時我們不想發(fā)生這種行為。這時引入了金俊勉線程的概念。Threading模塊支持守護程序線程,3 .python多線程基本步驟,使用threading簡介-1,threading.thread (self,group=none,target=none線程有兩種創(chuàng)建方法。一種是通過繼承Thread類來重寫run方法。另一個是將可調(diào)用對象從初始化函數(shù)(_ _init_)傳遞到參數(shù)的threading。創(chuàng)建Thread對象。參數(shù)組保留以供將來擴展。參數(shù)目標是線程啟動后運行的可調(diào)用對象(也稱為活動活動活動)。參數(shù)name是線程的名稱。默認值為“Thread-N”,N是數(shù)字。參
8、數(shù)args和kwargs分別表示調(diào)用target時的參數(shù)列表和關(guān)鍵字參數(shù)列表。3 .添加多線程、上一個關(guān)聯(lián)音樂和電影視圖多線程、使用threading簡介-2,Thread類定義用于獲取Thread.getName()/T牙齒線程名稱的常用方法和屬性,線程標識符為整數(shù)(不是0牙齒),僅在調(diào)用start()方法時有效。否則,僅返回None。thread . is _ alive()/thread . is alive確保線程處于活動狀態(tài)(alive)。從start()方法調(diào)用開始,線程將處于活動狀態(tài),直到run()方法執(zhí)行完成,或引發(fā)未處理的異常并中斷。調(diào)用Thread.jo
9、in(timeout)牙齒Thread.join將阻止線程,直到調(diào)用線程執(zhí)行結(jié)束或超時。參數(shù)timeout是表示超時的數(shù)字類型。如果沒有提供牙齒時間,主線程將阻塞,直到調(diào)整后的線程結(jié)束。threading簡介-3,使用Thread.join(timeout)調(diào)用Thread.join時,主線程將阻塞,直到調(diào)用線程執(zhí)行結(jié)束或超時。參數(shù)timeout是表示超時的數(shù)字類型。如果沒有提供牙齒時間,主線程將阻塞,直到調(diào)整后的線程結(jié)束。什么是子線程?Threading。包含在Thread中,全部視為子線程。什么是主線程?除了“Thread中未包含的節(jié)目”外,Main界面和主函數(shù)都是主線程,均顯示為主線程。
10、threada.join用法簡介-4,Thread類還定義了以下常用方法和屬性:管理thread的python具有兩個茄子函數(shù):Join()和setDaemon() join:從線程b調(diào)用thread1,牙齒set daemon:set daemon()執(zhí)行執(zhí)行緒之前。必須設(shè)置為獲取thread . is daemon()/thread . daemon牙齒線程的名稱。具有返回值。需要打印。3.多線程,例如,GIL不是python的特性,供應(yīng)商們?yōu)榱擞行У亟鉀Q多個緩存之間的數(shù)據(jù)同步,付出了很多努力,擁有了GIL,不可避免地帶來了一定程度的性能損失。蟒蛇當然也逃不掉。為了利用多核,python開
11、始支持多線程。解決多線程之間的數(shù)據(jù)完整性和狀態(tài)同步的最簡單方法是自然鎖定。因此,有一個叫GIL的超級鎖GIL牙齒無疑是全球?qū)S墟i。毫無疑問,全球鎖定的存在會對多線程效率產(chǎn)生重大影響。甚至Python是單線程程序。那么讀者會說,解開全球鎖的勤奮效率也不會差。在執(zhí)行耗時的IO操作時,如果能夠禁用GIL,則可以提高操作效率?;蛘咴賶囊膊槐葐尉€程效率差。理論上是這樣的,但實際上呢?python比你想象的更糟。但是,當CPU有多個內(nèi)核時,會出現(xiàn)問題。從Release GIL到acquire GIL幾乎沒有間隔。因此,當其他內(nèi)核中的其他線程醒來時,在大多數(shù)情況下,主線程已經(jīng)重新獲得了GIL。此時,喚醒運行
12、的線程只會白白浪費CPU時間,只能看著其他線程拿著GIL愉快地執(zhí)行。然后到達切換時間后,日程進入待定狀態(tài),醒來,等待,重復(fù)惡性循環(huán)。GIL的存在使多線程無法充分利用多核CPU的并行處理能力。GIL全局解釋鎖定簡介,3 .多線程,例如,4。使用多處理而不是Python多進程、thread multiprocessing庫通常是為了彌補thread庫效率低下的GIL的不足。牙齒產(chǎn)品完全復(fù)制thread提供的介面集,以方便遷移。唯一的區(qū)別是使用多個進程而不是多線程。每個進程都有自己獨立的GIL、完全并行、GIL無限制(進程中包括線程)牙齒,以充分利用多核多核心處理器環(huán)境,從而避免進程間的GIL爭用。
13、4 .python多進程,python多進程并發(fā),模塊名稱:多處理器python多線程物理多線程,在大多數(shù)情況下,python需要多進程才能充分利用多核心處理器CPU資源。牙齒包簡化了從單個進程到并發(fā)執(zhí)行的轉(zhuǎn)換。導(dǎo)入方法:多處理導(dǎo)入,多處理使用簡介-1,多處理包是python的多流程管理包。Threading。與Thread類似,multiprocessing??梢允褂肞rocess對象創(chuàng)建流程。牙齒Process對象與Thread對象的使用方法相同,方法包括start()、run()、join()等。多多線程包還包含Lock/Event/Semaphore/Condition類。lock/e
14、vent/semaphore/condition類與threading包中的thread類相同,可以參數(shù)通過網(wǎng)絡(luò)同步進程,因此,multiprocessing的很大一部分使用與Threading相同的API,但已更改為多進程方案。Multiprocessing提供了threading包中沒有的IPC(如Pipe和Queue),因此效率更高。必須優(yōu)先考慮Pipe和Queue,以避免使用Lock/Event/Semaphore/Condition等同步機制(因為它們占用的是線程,而不是用戶進程的資源)。Process,創(chuàng)建進程的類:process (group,start,name,args,kw
15、args)方法:is_alive(),join (TTS、創(chuàng)建函數(shù)和進程、創(chuàng)建函數(shù)、作為單個進程創(chuàng)建函數(shù),以及將進程定義為多個進程。多進程的幾種茄子方法,Lock:可以在訪問資源時避免沖突。Pool:提供指定數(shù)量的進程Queue:多進程安全隊列。多進程間資料傳輸在Pipe:實現(xiàn)管道模式下發(fā)送和接收消息、鎖定、同步和異步并發(fā)執(zhí)行:當一個進程執(zhí)行操作時,其他進程必須等到執(zhí)行完成后才能繼續(xù)執(zhí)行。鎖定可確保多個進程修改同一數(shù)據(jù)時,一次只能修改一個操作。是的,速度慢,但犧牲速度可以確保數(shù)據(jù)安全。異步運行:當一個進程運行作業(yè)時,其他進程可以不等待運行完成就運行,并在返回消息時警告您處理它們,從而提高運行效率。Lock、pool、Pool提供了用戶可以調(diào)用的指定數(shù)量的進程,在將新請求提交到Pool時,可以處理這些進程,但是,如果池中的進程數(shù)已達到指定的最大值,則在池中的進程結(jié)束之前,將不會創(chuàng)建并運行新進
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何健全辦學(xué)管理辦法
- 員額退出機制管理辦法
- 藥品責(zé)任追究管理辦法
- 拉薩補貼資金管理辦法
- 肯德基安全培訓(xùn)課件
- 倒閘操作培訓(xùn)課件
- 肝膿腫病人護理課件
- 眾安實業(yè)培訓(xùn)課件
- 二附中期末數(shù)學(xué)試卷
- kbz饋電開關(guān)培訓(xùn)課件
- 頸椎病牽引治療專家共識詳細解讀
- 2025山西萬家寨水務(wù)控股集團所屬企業(yè)校園招聘82人筆試參考題庫附帶答案詳解
- 2025屆內(nèi)蒙古烏海市八年級物理第二學(xué)期期末監(jiān)測試題含解析
- 2025-2030年中國地效飛行器行業(yè)市場運行態(tài)勢及發(fā)展前景研判報告
- 回購股權(quán)投資協(xié)議書
- 車間酒精安全管理制度
- 神經(jīng)網(wǎng)絡(luò)技術(shù)在船舶輻射噪聲預(yù)報中的應(yīng)用與研究
- 大學(xué)英語四級詞匯表
- 【知衣科技】2025春夏網(wǎng)球服白皮書-多平臺分析
- 中職生:高職單招數(shù)學(xué)各章節(jié)專項練習(xí)試卷及答案
- 文化創(chuàng)意產(chǎn)品開發(fā)生產(chǎn)合作協(xié)議
評論
0/150
提交評論