python多线程怎么写_怎么样优雅的使用python多线程?python进阶
Python多線程類似于同時(shí)執(zhí)行多個(gè)不同程序,但其執(zhí)行過(guò)程中和進(jìn)程還是有區(qū)別的,每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口,但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。
Python多線程優(yōu)點(diǎn)
1. 使用線程可以把占據(jù)長(zhǎng)時(shí)間的程序中的任務(wù)放到后臺(tái)去處理;
2. 用戶界面可以更加吸引人,這樣比如用戶點(diǎn)擊了一個(gè)按鈕去觸發(fā)某些事件的處理,可以彈出一個(gè)進(jìn)度條來(lái)顯示處理的進(jìn)度;
3. 程序的運(yùn)行速度可能加快;
4. 在一些等待的任務(wù)實(shí)現(xiàn)上如用戶輸入、文件讀寫(xiě)和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內(nèi)存占用等等。
Python多線程使用方法
Python中使用線程有兩種方式,分別是函數(shù)或者用類來(lái)包裝線程對(duì)象。
用函數(shù)來(lái)包裝線程對(duì)象的方式
用函數(shù)來(lái)包裝線程對(duì)象的方式是調(diào)用thread模塊中的start_new_thread()函數(shù)來(lái)產(chǎn)生新線程,線程的結(jié)束一般依靠線程函數(shù)的自然結(jié)束,也可以在線程函數(shù)中調(diào)用thread.exit()以達(dá)到退出線程的目的。具體語(yǔ)法如下:
thread.start_new_thread ( function, args[, kwargs] )
參數(shù)說(shuō)明:
function - 線程函數(shù);
args - 傳遞給線程函數(shù)的參數(shù),他必須是個(gè)tuple類型;
kwargs - 可選參數(shù)。
用類來(lái)包裝線程對(duì)象的方法
除了調(diào)用thread模塊來(lái)產(chǎn)生新線程外,還可以采用Thread類來(lái)處理線程,Thread類提供的方法有:
run(): 用以表示線程活動(dòng)的方法;
start():啟動(dòng)線程活動(dòng);
join([time]): 等待至線程中止。這阻塞調(diào)用線程直至線程的join()
方法被調(diào)用中止-正常退出或者拋出未處理的異常-或者是可選的超時(shí)發(fā)生;
isAlive(): 返回線程是否活動(dòng)的;
getName(): 返回線程名;
setName(): 設(shè)置線程名。
除了使用以上兩種方法外,還可以使用Threading模塊創(chuàng)建線程,直接從threading.Thread繼承,然后重寫(xiě)__init__方法和run方法,有興趣的可以進(jìn)一步了解具體用法!
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python多线程怎么写_怎么样优雅的使用python多线程?python进阶的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hive能替代oracle_173-Hi
- 下一篇: python红色_python把红玫瑰变