真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中線程處理之threading模塊的示例分析

這篇文章給大家分享的是有關(guān)python中線程處理之threading模塊的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供沙坡頭企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為沙坡頭眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

python是支持多線程的,并且是native的線程。主要是通過(guò)thread和threading這兩個(gè)模塊來(lái)實(shí)現(xiàn)的。thread是比較底層的模 塊,threading是對(duì)thread做了一些包裝的,可以更加方便的被使用。這里需要提一下的是python對(duì)線程的支持還不夠完善,不能利用多 CPU,但是下個(gè)版本的python中已經(jīng)考慮改進(jìn)這點(diǎn),讓我們拭目以待吧。

    threading模塊里面主要是對(duì)一些線程的操作對(duì)象化了,創(chuàng)建了叫Thread的class。一般來(lái)說(shuō),使用線程有兩種模式,一種是創(chuàng)建線程要執(zhí)行的 函數(shù),把這個(gè)函數(shù)傳遞進(jìn)Thread對(duì)象里,讓它來(lái)執(zhí)行;另一種是直接從Thread繼承,創(chuàng)建一個(gè)新的class,把線程執(zhí)行的代碼放到這個(gè)新的 class里。我們來(lái)看看這兩種做法吧。

#-*- encoding: gb2312 -*-
02
import string, threading, time
03
 
04
def thread_main(a):
05
    global count, mutex
06
    # 獲得線程名
07
    threadname = threading.currentThread().getName()
08
     
09
    for x in xrange(0, int(a)):
10
        # 取得鎖
11
        mutex.acquire()
12
        count = count + 1
13
        # 釋放鎖
14
        mutex.release()
15
        print threadname, x, count
16
        time.sleep(1)
17
     
18
def main(num):
19
    global count, mutex
20
    threads = []
21
     
22
    count = 1
23
    # 創(chuàng)建一個(gè)鎖
24
    mutex = threading.Lock()
25
    # 先創(chuàng)建線程對(duì)象
26
    for x in xrange(0, num):
27
        threads.append(threading.Thread(target=thread_main, args=(10,)))
28
    # 啟動(dòng)所有線程
29
    for t in threads:
30
        t.start()
31
    # 主線程中等待所有子線程退出
32
    for t in threads:
33
        t.join() 
34
     
35
     
36
if __name__ == '__main__':
37
    num = 4
38
    # 創(chuàng)建4個(gè)線程
39
    main(4)
[代碼] [Python]代碼
view sourceprint?
01
#-*- encoding: gb2312 -*-
02
import threading
03
import time
04
 
05
class Test(threading.Thread):
06
    def __init__(self, num):
07
        threading.Thread.__init__(self)
08
        self._run_num = num
09
     
10
    def run(self):
11
        global count, mutex
12
        threadname = threading.currentThread().getName()
13
     
14
        for x in xrange(0, int(self._run_num)):
15
            mutex.acquire()
16
            count = count + 1
17
            mutex.release()
18
            print threadname, x, count
19
            time.sleep(1)
20
 
21
if __name__ == '__main__':
22
    global count, mutex
23
    threads = []
24
    num = 4
25
    count = 1
26
    # 創(chuàng)建鎖
27
    mutex = threading.Lock()
28
    # 創(chuàng)建線程對(duì)象
29
    for x in xrange(0, num):
30
        threads.append(Test(10))
31
    # 啟動(dòng)線程
32
    for t in threads:
33
        t.start()
34
    # 等待子線程結(jié)束
35
    for t in threads:
36
        t.join()

感謝各位的閱讀!關(guān)于“python中線程處理之threading模塊的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


新聞名稱(chēng):python中線程處理之threading模塊的示例分析
文章轉(zhuǎn)載:http://weahome.cn/article/igjsid.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部