欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python多線程編程(一):threading模塊綜述

 更新時(shí)間:2015年04月05日 11:18:17   投稿:junjie  
這篇文章主要介紹了Python多線程編程(一):threading模塊綜述,本文講解了threading模塊、Thread類、Queue提供的類等內(nèi)容,需要的朋友可以參考下

Python這門解釋性語言也有專門的線程模型,Python虛擬機(jī)使用GIL(Global Interpreter Lock,全局解釋器鎖)來互斥線程對共享資源的訪問,但暫時(shí)無法利用多處理器的優(yōu)勢。在Python中我們主要是通過thread和 threading這兩個(gè)模塊來實(shí)現(xiàn)的,其中Python的threading模塊是對thread做了一些包裝的,可以更加方便的被使用,所以我們使用 threading模塊實(shí)現(xiàn)多線程編程。這篇文章我們主要來看看Python對多線程編程的支持。

在語言層面,Python對多線程提供了很好的支持,可以方便地支持創(chuàng)建線程、互斥鎖、信號量、同步等特性。下面就是官網(wǎng)上介紹threading模塊的基本資料及功能:

實(shí)現(xiàn)模塊

thread:多線程的底層支持模塊,一般不建議使用;
threading:對thread進(jìn)行了封裝,將一些線程的操作對象化。

threading模塊

Thread 線程類,這是我們用的最多的一個(gè)類,你可以指定線程函數(shù)執(zhí)行或者繼承自它都可以實(shí)現(xiàn)子線程功能;

Timer與Thread類似,但要等待一段時(shí)間后才開始運(yùn)行;
Lock 鎖原語,這個(gè)我們可以對全局變量互斥時(shí)使用;
RLock 可重入鎖,使單線程可以再次獲得已經(jīng)獲得的鎖;
Condition 條件變量,能讓一個(gè)線程停下來,等待其他線程滿足某個(gè)“條件”;
Event 通用的條件變量。多個(gè)線程可以等待某個(gè)事件發(fā)生,在事件發(fā)生后,所有的線程都被激活;
Semaphore為等待鎖的線程提供一個(gè)類似“等候室”的結(jié)構(gòu);
BoundedSemaphore 與semaphore類似,但不允許超過初始值;
Queue:實(shí)現(xiàn)了多生產(chǎn)者(Producer)、多消費(fèi)者(Consumer)的隊(duì)列,支持鎖原語,能夠在多個(gè)線程之間提供很好的同步支持。

Thread類

是你主要的線程類,可以創(chuàng)建進(jìn)程實(shí)例。該類提供的函數(shù)包括:
getName(self) 返回線程的名字
isAlive(self) 布爾標(biāo)志,表示這個(gè)線程是否還在運(yùn)行中
isDaemon(self) 返回線程的daemon標(biāo)志
join(self, timeout=None) 程序掛起,直到線程結(jié)束,如果給出timeout,則最多阻塞timeout秒
run(self) 定義線程的功能函數(shù)
setDaemon(self, daemonic) 把線程的daemon標(biāo)志設(shè)為daemonic
setName(self, name) 設(shè)置線程的名字
start(self) 開始線程執(zhí)行

Queue提供的類

Queue隊(duì)列
LifoQueue后入先出(LIFO)隊(duì)列
PriorityQueue 優(yōu)先隊(duì)列

接下來

接下來的一系列文章,將會(huì)用一個(gè)一個(gè)示例來展示threading的各個(gè)功能,包括但不限于:兩種方式起線程、threading.Thread類的重要函數(shù)、使用Lock互斥及RLock實(shí)現(xiàn)重入鎖、使用Condition實(shí)現(xiàn)生產(chǎn)者和消費(fèi)者模型、使用Event和Semaphore多線程通信。

相關(guān)文章

  • opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法

    opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法

    這篇文章主要介紹了opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 寫好Python代碼的幾條重要技巧

    寫好Python代碼的幾條重要技巧

    好的代碼具有易理解、可擴(kuò)展、易維護(hù)的特點(diǎn),簡直是人見人愛。本文就將介紹寫好python代碼的多個(gè)技巧
    2021-05-05
  • Python的turtle繪圖庫使用基礎(chǔ)

    Python的turtle繪圖庫使用基礎(chǔ)

    turtle庫是Python語言中一個(gè)很流行的繪制圖像的函數(shù)庫,想象一個(gè)小烏龜,它根據(jù)一組函數(shù)指令的控制,在這個(gè)平面坐標(biāo)系中移動(dòng),從而在它爬行的路徑上繪制了圖形,需要的朋友可以參考下
    2023-04-04
  • django 消息框架 message使用詳解

    django 消息框架 message使用詳解

    這篇文章主要介紹了django 消息框架 message使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 詳解python中的異常和文件讀寫

    詳解python中的異常和文件讀寫

    這篇文章主要介紹了python中的異常和文件讀寫的的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python的json.loads() 方法與json.dumps()方法及使用小結(jié)

    Python的json.loads() 方法與json.dumps()方法及使用小結(jié)

    json.loads() 是一個(gè)非常有用的方法,它允許你在處理 JSON 數(shù)據(jù)時(shí),將其轉(zhuǎn)換為 Python 數(shù)據(jù)類型,以便于在代碼中進(jìn)行操作和處理,這篇文章給大家介紹Python的json.loads() 方法與json.dumps()方法及使用小結(jié),感興趣的朋友一起看看吧
    2024-03-03
  • 教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬

    教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬

    這篇文章主要給大家介紹了關(guān)于教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 淺析python中的絕對導(dǎo)入和相對導(dǎo)入

    淺析python中的絕對導(dǎo)入和相對導(dǎo)入

    這篇文章主要是想和大家簡單聊聊python中絕對導(dǎo)入和相對導(dǎo)入的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考下
    2023-09-09
  • Python?print函數(shù)使用由淺入深全面詳解

    Python?print函數(shù)使用由淺入深全面詳解

    這篇文章主要為大家介紹了Python?print函數(shù)使用由淺入深全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Python用字典構(gòu)建多級菜單功能

    Python用字典構(gòu)建多級菜單功能

    這篇文章主要介紹了Python用字典構(gòu)建多級菜單功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評論