国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python中的多線程實(shí)例教程

2020-02-23 05:43:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文以實(shí)例形式較為詳細(xì)的講述了Python中多線程的用法,在Python程序設(shè)計(jì)中有著比較廣泛的應(yīng)用。分享給大家供大家參考之用。具體分析如下:

python中關(guān)于多線程的操作可以使用thread和threading模塊來(lái)實(shí)現(xiàn),其中thread模塊在Py3中已經(jīng)改名為_thread,不再推薦使用。而threading模塊是在thread之上進(jìn)行了封裝,也是推薦使用的多線程模塊,本文主要基于threading模塊進(jìn)行介紹。在某些版本中thread模塊可能不存在,要使用dump_threading來(lái)代替threading模塊。

一、線程創(chuàng)建

threading模塊中每個(gè)線程都是一個(gè)Thread對(duì)象,創(chuàng)建一個(gè)線程有兩種方式,一種是將函數(shù)傳遞到Thread對(duì)象中執(zhí)行,另一種是從Thread繼承,然后重寫run方法(是不是跟Java很像)。

下面使用這兩種方法分別創(chuàng)建一個(gè)線程并同時(shí)執(zhí)行

import random, threadingdef threadFunction():  for i in range(10):    print 'ThreadFuction - %d'%i    time.sleep(random.randrange(0,2))class ThreadClass(threading.Thread):  def __init__(self):    threading.Thread.__init__(self);      def run(self):    for i in range(10):      print 'ThreadClass - %d'%i      time.sleep(random.randrange(0,2))if __name__ == '__main__':  tFunc = threading.Thread(target = threadFunction);  tCls = ThreadClass()  tFunc.start()  tCls.start()

執(zhí)行結(jié)果如下,可以看到兩個(gè)線程在交替打印。至于空行和一行多個(gè)輸出,是因?yàn)镻y的print并不是線程安全的,在當(dāng)前線程的print打印了部分內(nèi)容后,準(zhǔn)備打印換行之前,被別的線程中的print搶先,在換行之前打印了其它的內(nèi)容。

ThreadFuction - 0ThreadFuction - 1ThreadFuction - 2ThreadClass - 0ThreadFuction - 3ThreadClass - 1ThreadFuction - 4ThreadClass - 2ThreadClass - 3ThreadClass - 4ThreadFuction - 5ThreadClass - 5ThreadClass - 6ThreadClass - 7ThreadClass - 8ThreadFuction - 6ThreadClass - 9ThreadFuction - 7ThreadFuction - 8ThreadFuction - 9

Thread類的構(gòu)造函數(shù)定義如下

class threading.Thread(group=None, target=None, name=None, args=(), kwargs={})

group: 留作ThreadGroup擴(kuò)展使用,一般沒什么用
target:新線程的任務(wù)函數(shù)名
name:  線程名,一般也沒什么用
args:  tuple參數(shù)
kwargs:dictionary參數(shù)

Thread類的成員變量和函數(shù)如下

start()         啟動(dòng)一個(gè)線程
run()           線程執(zhí)行體,也是一般要重寫的內(nèi)容
join([timeout]) 等待線程結(jié)束
name            線程名
ident           線程ID
daemon          是否守護(hù)線程
isAlive()、is_alive()    線程是否存活

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 防城港市| 大姚县| 海林市| 独山县| 广州市| 岳西县| 建始县| 时尚| 类乌齐县| 乐平市| 扶风县| 白河县| 醴陵市| 奉贤区| 吉木萨尔县| 玉山县| 澄迈县| 包头市| 临澧县| 南部县| 孟津县| 台安县| 清远市| 景宁| 都江堰市| 宜城市| 绥芬河市| 武夷山市| 贺兰县| 汾阳市| 镇宁| 朝阳市| 博爱县| 宁晋县| 鄂尔多斯市| 仙居县| 西宁市| 泊头市| 木里| 辽宁省| 陈巴尔虎旗|