久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

多線程是程序員不加班的神器!Python多線程最全總結(jié),!永不加班,!

 flyk0tcfb46p9f 2018-03-15

一、線程講解

1.多線程類似于同時(shí)執(zhí)行多個(gè)不同程序,,多線程運(yùn)行有如下優(yōu)點(diǎn):

  • 使用線程可以把占據(jù)長(zhǎng)時(shí)間的程序中的任務(wù)放到后臺(tái)去處理,。

  • 用戶界面可以更加吸引人,這樣比如用戶點(diǎn)擊了一個(gè)按鈕去觸發(fā)某些事件的處理,,可以彈出一個(gè)進(jìn)度條來(lái)顯示處理的進(jìn)度,。

  • 程序的運(yùn)行速度可能加快。

  • 在一些等待的任務(wù)實(shí)現(xiàn)上如用戶輸入,、文件讀寫和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內(nèi)存占用等等,。

線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的,。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口,。但是線程不能夠獨(dú)立執(zhí)行,,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制,。

每個(gè)線程都有他自己的一組CPU寄存器,,稱為線程的上下文,該上下文反映了線程上次運(yùn)行該線程的CPU寄存器的狀態(tài),。

指令指針和堆棧指針寄存器是線程上下文中兩個(gè)最重要的寄存器,,線程總是在進(jìn)程的上下文中運(yùn)行的,,這些地址都用于標(biāo)志擁有線程的進(jìn)程地址空間中的內(nèi)存。

線程可以被搶占(中斷),。

在其他線程正在運(yùn)行時(shí),,線程可以暫時(shí)擱置(也稱為睡眠) – 這就是線程的退讓。

2.線程可以分為:

  • 內(nèi)核線程:由操作系統(tǒng)內(nèi)核創(chuàng)建和撤銷,。

  • 用戶線程:不需要內(nèi)核支持而在用戶程序中實(shí)現(xiàn)的線程,。

3. Python3 線程中常用的兩個(gè)模塊為:

  • _thread

  • threading(推薦使用)

thread 模塊已被廢棄。用戶可以使用 threading 模塊代替,。所以,,在 Python3 中不能再使用”thread” 模塊。為了兼容性,,Python3 將 thread 重命名為 “_thread”,。

thread 模塊已被廢棄。用戶可以使用 threading 模塊代替,。所以,,在 Python3 中不能再使用'thread' 模塊,。為了兼容性,,Python3 將 thread 重命名為 '_thread'。

實(shí)例:

執(zhí)行以上程序輸出結(jié)果如下:

使用 threading 模塊創(chuàng)建線程

我們可以通過(guò)直接從 threading.Thread 繼承創(chuàng)建一個(gè)新的子類,,并實(shí)例化后調(diào)用 start() 方法啟動(dòng)新線程,,即它調(diào)用了線程的 run() 方法:

以上程序執(zhí)行結(jié)果如下:

線程同步

如果多個(gè)線程共同對(duì)某個(gè)數(shù)據(jù)修改,,則可能出現(xiàn)不可預(yù)料的結(jié)果,為了保證數(shù)據(jù)的正確性,,需要對(duì)多個(gè)線程進(jìn)行同步,。

使用 Thread 對(duì)象的 Lock 和 Rlock 可以實(shí)現(xiàn)簡(jiǎn)單的線程同步,這兩個(gè)對(duì)象都有 acquire 方法和 release 方法,,對(duì)于那些需要每次只允許一個(gè)線程操作的數(shù)據(jù),,可以將其操作放到 acquire 和 release 方法之間。如下:

多線程的優(yōu)勢(shì)在于可以同時(shí)運(yùn)行多個(gè)任務(wù)(至少感覺起來(lái)是這樣),。但是當(dāng)線程需要共享數(shù)據(jù)時(shí),,可能存在數(shù)據(jù)不同步的問(wèn)題。

實(shí)例:

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多