網友評分: 5分
TMultiThread 是一款幫助創建多個線程的非可視化類工具,用于創建多線程縮略圖或任何其他需要很多線程的任務。指定一個max. thread計數,并簡單地將工作添加到類中,當工作準備好時,將調用帶有結果的回調事件。
1) 提高應用程序響應。這對圖形界面的程序尤其有意義,當一個操作耗時很長時,整個系統都會等待這個操作,此時程序不會響應鍵盤、鼠標、菜單的操作,而使用多線程技術,將耗時長的操作(time consuming)置于一個新的線程,可以避免這種尷尬的情況。
2) 使多CPU系統更加有效。操作系統會保證當線程數不大于CPU數目時,不同的線程運行于不同的CPU上。
3) 改善程序結構。一個既長又復雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,這樣的程序會利于理解和修改。
一.建立環境
threading
安裝:anaconda自帶
二.使用格式
1 import threading
2 class Set_Globa(threading.Thread):
3 def __init__(self):
4 super(Set_Globa, self).__init__()
5 def run(self):
6 pass
7 Set_Globa().start()
三.注意事項:
多線程必然有數據的交互故而一定要用到threading.Lock()鎖,在使用交互數據時一定要獲得和釋放鎖
四.使用思路:
思路一:1 + X多線程
情景:多線程處理for循環并且每個for循環彼此獨立互不影響
線程數:1 + X
1:分發線程,所有的數據獲得由此線程承擔,并分發,分發時注意獲得鎖
X:執行線程,從交互的數據部分取出數據并進行執行。
設置多個global變量作為線程間的交互的數據存儲地址。
V2.0.2.2
在調用工作者回調事件時固定“結果”不為零
V2.0.1.1
添加 ThreadStartCallback 和 ThreadFinishedCallback 回調事件
標簽: TMultiThread 多線程