摘要:上一篇文章線程專題多線程共享全局變量下一篇文章線程專題對象對象對象對象類用于表示多帶帶的控制線程。線程啟動時將調用此方法。阻塞線程,等待直到線程終止或者出現超時為止。當不存在任何任何活動的非后臺進程時,整個程序會退出。
上一篇文章:Python線程專題2:多線程共享全局變量Thread對象
下一篇文章:Python線程專題4:Timer對象、Lock對象、Rlock對象
Thread類用于表示多帶帶的控制線程。
語法:t=Thread(group=None,target=None,name=None,args=(),kwargs={}) 創建一個新的Thread實例:t group:為以后擴張保留的,默認為None target:一個可調用對象,線程啟動時,run()方法將調用此對象 name:線程名稱,默認創建一個“Thread-N”格式的唯一名稱。 args:傳遞給target函數的參數元祖 kwargs:傳遞給target的關機字參數的字典。常用屬性于方法
t.start():通過在一個多帶帶的控制線程中調用run(),啟動線程,此方法只能被調用一次。 t.run():線程啟動時將調用此方法。默認情況下,他會調用目標函數target。還可以在Thread的子類中重新定義此方法。 t.join([timeout]):阻塞線程,等待直到線程終止或者出現超時為止。timeout是以秒為單位的超時時間。 線程啟動之前不能調用此方法,否則會報錯。 t.is_alive:如果線程是活動的,返回True,否則返回False,從start()返回的那一刻開始,線程就是活動的, 直到run()方法終止為止。 t.name:線程名稱,這個字符串用于唯一標識,可以根據需要將它更改為更有意義的值, t.ident:整數線程標識符,如果線程尚未啟動,它的值為None。 t.daemon:如果線程是后臺線程,該值為True,否則未False。當不存在任何任何活動的非后臺進程時,整個程序會退出。實例1:利用Thread對象,簡單創建一個線程,并啟動一個函數
#利用Thread對象,簡單創建一個線程,并啟動一個函數 from threading import Thread import time def mark(interval): print("循環等待時間時間%d,等待前時間:%s"%(interval,time.ctime())) time.sleep(interval) print("等待后的時間:%s"%time.ctime()) if __name__=="__main__": t=Thread(target=mark,args=(3,)) t.daemon=False#設置為非后臺線程,不然會看不到自線程打印效果主線程就直接關閉了 #下面一句會報錯,必須在start()方法之后調用 #t.join(3) t.start() #下面語句也會報錯,因為start只能調用一次 #t.start() print("end")
代碼:
#通過繼承Thread,實現線程類 from threading import Thread import time class MyThread(Thread): def __init__(self,interval): #下面語句用來調用基類方法,必須調用 Thread.__init__(self) self.daemon=False self.interval=interval def run(self): print("循環等待時間時間%d,等待前時間:%s" % (self.interval, time.ctime())) time.sleep(self.interval) print("等待后的時間:%s" % time.ctime()) if __name__=="__main__": t=MyThread(3) t.start() #為了方便查看打印效果,加了一秒延遲 time.sleep(1) print("end")
結果:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42393.html
摘要:上一篇文章線程專題多線程使用的必要性下一篇文章線程專題對象在一個進程內的所有線程共享全局變量。但多線程對全局變量的更改會導致變量值得混亂。 上一篇文章: Python線程專題1:多線程使用的必要性下一篇文章:Python線程專題3:thread對象 在一個進程內的所有線程共享全局變量。但多線程對全局變量的更改會導致變量值得混亂。 實例:驗證同一個進程內所有線程共享全局變量 代碼: #...
摘要:上一篇文章進程專題完結篇多進程處理的一般建議下一篇文章線程專題多線程使用的必要性進程線程進程能夠完成多任務,比如在一個電腦上可以運行多個軟件。由于占用資源少,也使得多線程程序并發比較高。 上一篇文章:Python進程專題完結篇:多進程處理的一般建議下一篇文章:Python線程專題1:多線程使用的必要性 進程VS線程 進程:能夠完成多任務,比如在一個電腦上可以運行多個軟件。線程:也能夠...
摘要:語法創建定時器對象,在秒后運行函數,和提供傳遞給的參數和關鍵字參數。在調用方法后才能啟動計定時器。如果函數還未執行,取消定時器。否則,鎖將保持已鎖定狀態。 上一篇文章:Python線程專題3:thread對象下一篇文章:Python線程專題5:信號量與有邊界的信號量 Timer對象、Lock對象、Rlock對象 Timer對象 Timer對象用于在稍后的某個時間執行一個函數。 語法:...
摘要:上一篇文章線程專題使用鎖的注意事項下一篇文章線程專題多線程按順序執行線程沒有任何方法可用于強制終止或掛起。實用工具函數函數名解釋返回當前活動的對象數量。 上一篇文章:Python線程專題8:使用鎖的注意事項下一篇文章:Python線程專題10:queue、多線程按順序執行 線程沒有任何方法可用于強制終止或掛起。這是設計上的原因,因為編寫線程程序本身十分復雜。例如:如果某個線程已經獲取...
摘要:有邊界的信號量語法創建一個新的有邊界信號量。是計數器的初始值,如果忽略,將默認為信號量與有邊界的信號量的區別的工作方式與完全相同,但操作的次數不能超過的操作次數。信號量與互斥鎖的微妙差別信號量可用于發送信號。 上一篇文章:Python線程專題4:Timer對象、Lock對象、Rlock對象下一篇文章:Python線程專題6:事件 信號量與有邊界的信號量 信號量是一個基于計數器的同步原...
閱讀 2893·2021-09-22 15:20
閱讀 2966·2021-09-22 15:19
閱讀 3466·2021-09-22 15:15
閱讀 2397·2021-09-08 09:35
閱讀 2382·2019-08-30 15:44
閱讀 3014·2019-08-30 10:50
閱讀 3737·2019-08-29 16:25
閱讀 1593·2019-08-26 13:55