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

首頁 > 編程 > Python > 正文

Python THREADING模塊中的JOIN()方法深入理解

2020-02-23 06:25:00
字體:
來源:轉載
供稿:網友

看了oschina上的兩個代碼,受益匪淺。其中對join()方法不理解,看python官網文檔的介紹:
join([timeout]):等待直到進程結束。這將阻塞正在調用的線程,直到被調用join()方法的線程結束。(好難翻譯,應該是這個意思)

哈哈,這個易懂。
join方法,如果一個線程或者一個函數在執行過程中要調用另外一個線程,并且待到其完成以后才能接著執行,那么在調用這個線程時可以使用被調用線程的join方法。
代碼如下:
#-*- encoding: gb2312 -*-
import string, threading, time
 
def thread_main(a):
    global count, mutex
    # 獲得線程名
    threadname = threading.currentThread().getName()
 
    for x in xrange(0, int(a)):
        # 取得鎖
        mutex.acquire()
        count = count + 1
        # 釋放鎖
        mutex.release()
        print threadname, x, count
        time.sleep(1)
 
def main(num):
    global count, mutex
    threads = []
 
    count = 1
    # 創建一個鎖
    mutex = threading.Lock()
    # 先創建線程對象
    for x in xrange(0, num):
        threads.append(threading.Thread(target=thread_main, args=(10,)))
    # 啟動所有線程
    for t in threads:
        t.start()
    # 主線程中等待所有子線程退出
    for t in threads:
        t.join() 
 
if __name__ == '__main__':
    num = 4
    # 創建4個線程
    main(4)
###################################################################
#-*- encoding: gb2312 -*-
import threading
import time
 
class Test(threading.Thread):
    def __init__(self, num):
        threading.Thread.__init__(self)
        self._run_num = num
 
    def run(self):
        global count, mutex
        threadname = threading.currentThread().getName()
 
        for x in xrange(0, int(self._run_num)):
            mutex.acquire()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东山县| 洪泽县| 禄丰县| 呈贡县| 开化县| 靖宇县| 峨眉山市| 扎兰屯市| 古浪县| 南丰县| 横山县| 象州县| 灵寿县| 璧山县| 房产| 青浦区| 黄陵县| 吉林市| 台中县| 剑阁县| 峡江县| 临泽县| 海宁市| 于田县| 铁岭市| 广安市| 云林县| 泾川县| 威信县| 称多县| 常德市| 黑水县| 建宁县| 寻乌县| 兴和县| 呼图壁县| 那曲县| 沙洋县| 库尔勒市| 神池县| 河间市|