多線程(threading)示例
阿新 • • 發佈:2019-03-23
style 示例 get 對象 col frog 並發 輸出 print
一、多線程簡單示例
import threading,time print(‘第一線程(默認):程序開始啦!‘) def takeANap(): time.sleep(5) print(‘第二線程:5秒到,我醒來啦!‘) #創建並啟動多線程 t=threading.Thread(target=takeANap) t.start() print(‘第一線程(默認):程序結束啦!‘) ‘‘‘ 輸出: 第一線程(默認):程序開始啦! 第一線程(默認):程序結束啦! >>> 第二線程:5秒到,我醒來啦! ‘‘‘
二、多線程傳遞多參數、可選參數示例
import threading ##多線程傳遞多參數print(‘Cats‘,‘Dogs‘,‘Frogs‘,sep=‘&‘)=>Cats & Dogs & Frogs: threadObj = threading.Thread(target=print, args=[‘Cats‘, ‘Dogs‘, ‘Frogs‘],kwargs={‘sep‘: ‘ & ‘}) threadObj.start() ##輸出:Cats & Dogs & Frogs
三、並發問題
可以輕松地創建多個新線程,讓它們同時運行。但多線程也可能會導致所謂的並發問題。如果這些線程同時讀寫變量,導致互相幹擾,就會發生並發問題。並發問題可能很難一致地重現,所以難以調試。多線程編程本身就是一個廣泛的主題。必須記住的是:為了避免並發問題,絕不讓多個線程讀取或寫入相同的變量。當創建一個新的Thread 對象時,要確保其目標函數只使用該函數中的局部變量。這將避免程序中難以調試的並發問題。
多線程(threading)示例