1. 程式人生 > >python threading

python threading

threads 沒有 等待 __main__ 傳參 col python all ads

# coding=utf-8
#
# 首先導入threading 模塊,這是使用多線程的前提。
import threading
from time import ctime,sleep

def music(name):
    for i in range(2):
        print("I was listening to music . %s %s" %(name,ctime()))
        sleep(1)

def coding(code):
    for i in range(2):
        print("I was coding codes! %s %s
" %(code,ctime())) sleep(5) threads = [] #創建了threads數組,創建線程t1,使用threading.Thread()方法, #在這個方法中調用music方法target=music,args方法對music進行傳參。 把創建好的線程t1裝到threads數組中。 #定義單元素的tuple有歧義,所以 Python 規定,單元素 tuple 要多加一個逗號“,”,這樣就避免了歧義: t1 = threading.Thread(target=music,args=(u偉大的闖爺之歌,)) threads.append(t1)
#接著以同樣的方式創建線程t2,並把t2也裝到threads數組。 t2 = threading.Thread(target=coding,args=(upython代碼,)) threads.append(t2) if __name__ ==__main__: for t in threads: #setDaemon(True)將線程聲明為守護線程,必須在start() 方法調用之前設置,如果不設置為守護線程程序會被無限掛起。 #子線程啟動後,父線程也繼續執行下去, #當父線程執行完最後一條語句print "all over %s" %ctime()後,沒有等待子線程,直接就退出了,同時子線程也一同結束。
t.setDaemon(True); #開始線程活動 t.start() t.join() print(" all over %s" %ctime())

python threading