中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-03-09 14:09:59 來源:億速云 閱讀:179 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關python中線程處理之threading模塊的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

python是支持多線程的,并且是native的線程。主要是通過thread和threading這兩個模塊來實現的。thread是比較底層的模 塊,threading是對thread做了一些包裝的,可以更加方便的被使用。這里需要提一下的是python對線程的支持還不夠完善,不能利用多 CPU,但是下個版本的python中已經考慮改進這點,讓我們拭目以待吧。

    threading模塊里面主要是對一些線程的操作對象化了,創建了叫Thread的class。一般來說,使用線程有兩種模式,一種是創建線程要執行的 函數,把這個函數傳遞進Thread對象里,讓它來執行;另一種是直接從Thread繼承,創建一個新的class,把線程執行的代碼放到這個新的 class里。我們來看看這兩種做法吧。

#-*- 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
    # 創建一個鎖
24
    mutex = threading.Lock()
25
    # 先創建線程對象
26
    for x in xrange(0, num):
27
        threads.append(threading.Thread(target=thread_main, args=(10,)))
28
    # 啟動所有線程
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
    # 創建4個線程
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
    # 創建鎖
27
    mutex = threading.Lock()
28
    # 創建線程對象
29
    for x in xrange(0, num):
30
        threads.append(Test(10))
31
    # 啟動線程
32
    for t in threads:
33
        t.start()
34
    # 等待子線程結束
35
    for t in threads:
36
        t.join()

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清丰县| 五寨县| 津市市| 逊克县| 洮南市| 禹州市| 莎车县| 布拖县| 渑池县| 襄汾县| 铜梁县| 塔河县| 贺兰县| 开原市| 平塘县| 五大连池市| 桂平市| 萨迦县| 吴堡县| 繁峙县| 颍上县| 祁东县| 仁化县| 宁陵县| 临湘市| 内乡县| 新沂市| 抚顺市| 苗栗县| 双桥区| 铜鼓县| 马鞍山市| 阿图什市| 天柱县| 宁河县| 巴楚县| 靖安县| 屏东县| 五华县| 吉木萨尔县| 万山特区|