摘要:資源競爭互斥鎖解決多線程可以共享全局變量,同時操作全局變量,可能會出現(xiàn)資源競爭的問題??梢杂迷O(shè)置等待時間來避免線程的常用應(yīng)用多任務(wù)聊天器,或者多個同時執(zhí)行多線程是假的多任務(wù)。所以多線程比單線程性能上是有提升的,因?yàn)橛龅阶枞麜詣俞尫诺摹?/p>
線程
定義:一個程序運(yùn)行起來之后,一定有個負(fù)責(zé)執(zhí)行代碼的東西,這個東西就叫線程。線程占用的資源比較少,操作系統(tǒng)調(diào)度的單位。
t = threading.Thread(target=dance) 創(chuàng)建線程實(shí)例?t.start() 啟動線程,在這里會出現(xiàn)一個子線程
threading.enumerate() 打印當(dāng)前所有線程,返回一個列表【】
總結(jié):
完成多任務(wù),需要用threading模塊來創(chuàng)建多線程來實(shí)現(xiàn),還可以用繼承Thread類的形式來創(chuàng)建線程(里面必須定義run方法)。
可以查看正在運(yùn)行的線程名稱
主線程會在子線程均結(jié)束后才停止。
調(diào)用start后,會出現(xiàn)一個子線程。
資源競爭—互斥鎖解決
多線程可以共享全局變量,同時操作全局變量,可能會出現(xiàn)資源競爭的問題。
互斥鎖Lock的acquire,release可以解決資源競爭的問題。
死鎖:兩個線程互相等待對方釋放資源時,就會造成死鎖??梢杂迷O(shè)置等待時間來避免
線程的常用應(yīng)用:多任務(wù)聊天器,或者多個while true同時執(zhí)行
多線程是假的多任務(wù)。
GIL:全局解釋器鎖,每個線程在執(zhí)行的過程中均需要先獲取到GIL,保證同一時刻只有一個線程可以執(zhí)行代碼。
python和GIL鎖沒有半毛錢關(guān)系,是歷史原因cpython解釋器造成的,cpython無法移出GIL鎖
python釋放GIL的情況,在io操作時,是可以暫時釋放的,然后在執(zhí)行完畢后,必須重新獲取gil。所以多線程比單線程性能上是有提升的,因?yàn)橛龅絠o阻塞會自動釋放GIL的。
python使用多進(jìn)程是可以利用多核的cup資源。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43577.html
摘要:一個進(jìn)程可以擁有多個線程,一個線程必須有一個父進(jìn)程。線程是獨(dú)立運(yùn)行的,它并不知道進(jìn)程中是否還有其他的線程存在。線程的調(diào)度和管理由進(jìn)程本身負(fù)責(zé)完成。因此多線程實(shí)現(xiàn)多任務(wù)并發(fā)比多線程的效率高。 ??一個任務(wù)通常就是一個程序,每個運(yùn)行中的程序就是一個進(jìn)程。當(dāng)一個程序運(yùn)行時,內(nèi)部可能包含了多個順序執(zhí)行流,每個順序執(zhí)行流就是一個線程。 進(jìn)程 定義: ??當(dāng)一個程序進(jìn)入內(nèi)存運(yùn)行時,即變成一個進(jìn)程。...
摘要:線程池可以用來解決處理一個特定請求最大線程數(shù)量限制問題。安撫多歲的發(fā)發(fā)發(fā)線程池的作用線程池作用就是限制系統(tǒng)中執(zhí)行線程的數(shù)量。若隊(duì)列中沒有等待進(jìn)程,線程池的這一資源處于等待。此線程池支持定時以及周期性執(zhí)行任務(wù)的需求。 前言 面試中我們經(jīng)常會遇到多線程和線程池的問題,究竟如何回答呢?今天關(guān)于Java中的線程池,我們就來學(xué)習(xí)一下。 什么是線程池 線程池是指在初始化一個多線程應(yīng)用程序過程中創(chuàng)建...
摘要:線程池可以用來解決處理一個特定請求最大線程數(shù)量限制問題。安撫多歲的發(fā)發(fā)發(fā)線程池的作用線程池作用就是限制系統(tǒng)中執(zhí)行線程的數(shù)量。若隊(duì)列中沒有等待進(jìn)程,線程池的這一資源處于等待。此線程池支持定時以及周期性執(zhí)行任務(wù)的需求。 前言 面試中我們經(jīng)常會遇到多線程和線程池的問題,究竟如何回答呢?今天關(guān)于Java中的線程池,我們就來學(xué)習(xí)一下。 什么是線程池 線程池是指在初始化一個多線程應(yīng)用程序過程中創(chuàng)建...
閱讀 2086·2023-04-25 19:15
閱讀 2265·2021-11-23 09:51
閱讀 1272·2021-11-17 09:33
閱讀 2177·2021-08-26 14:15
閱讀 2493·2019-08-30 15:54
閱讀 1590·2019-08-30 15:54
閱讀 2178·2019-08-30 12:50
閱讀 1143·2019-08-29 17:08