黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統(tǒng) 1969 0

Python這門解釋性語言也有專門的線程模型,Python虛擬機(jī)使用GIL(Global Interpreter Lock,全局解釋器鎖)來互斥線程對共享資源的訪問,但暫時無法利用多處理器的優(yōu)勢。在Python中我們主要是通過thread和 threading這兩個模塊來實(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 線程類,這是我們用的最多的一個類,你可以指定線程函數(shù)執(zhí)行或者繼承自它都可以實(shí)現(xiàn)子線程功能;

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

Thread類

是你主要的線程類,可以創(chuàng)建進(jìn)程實(shí)例。該類提供的函數(shù)包括:
getName(self) 返回線程的名字
isAlive(self) 布爾標(biāo)志,表示這個線程是否還在運(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ì)列

接下來

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論