一、基本概念
程序:當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。
執行緒:執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器(棧指標、程式計數器等),但**區是共享的,即不同的執行緒可以執行同樣的函式。
多執行緒:多執行緒是指程式中包含多個執行流,即在乙個程式中可以同時執行多個不同的執行緒來執行不同的任務,也就是說允許單個程式建立多個並行執行的執行緒來完成各自的任務。
靜態屬性:這個類所有物件所公有的屬性,不管你建立了多少個這個類的例項,但是類的靜態屬性在記憶體中只有乙個。
二、多執行緒的優劣
優點:可以提高cpu的利用率。在多執行緒程式中,乙個執行緒必須等待的時候,cpu可以執行其它的執行緒而不是等待,這樣就大大提高了程式的效率。
缺點:執行緒也是程式,所以執行緒需要占用記憶體,執行緒越多占用記憶體也越多;
多執行緒需要協調和管理,所以需要cpu時間跟蹤執行緒;
執行緒之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題;
執行緒太多會導致控制太複雜,最終可能造成很多bug;
三、控制線程的類和方法
類:using system.threading; thread類
thread類的方法:start():啟動執行緒;
sleep(int):靜態方法,暫停當前執行緒指定的毫秒數;
abort():通常使用該方法來終止乙個執行緒;
suspend():該方法並不終止未完成的執行緒,它僅僅掛起執行緒,以後還可恢復;
resume():恢復被suspend()方法掛起的執行緒的執行。
四、如何操縱乙個執行緒
using system;
using system.threading;
namespace threadtest
}
}public class ******
catch (threadstateexception)
return 0;
} }}
五、thread.threadstate 屬性
aborted:執行緒已停止;
abortrequested:執行緒的thread.abort()方法已被呼叫,但是執行緒還未停止;
background:執行緒在後台執行,與屬性thread.isbackground有關;不妨礙程式的終止
running:執行緒正在正常執行;
stopped:執行緒已經被停止;
stoprequested:執行緒正在被要求停止;
suspended:執行緒已經被掛起(此狀態下,可以通過呼叫resume()方法重新執行);
suspendrequested:執行緒正在要求被掛起,但是未來得及響應;
unstarted:未呼叫thread.start()開始執行緒的執行;
waitsleepjoin:執行緒因為呼叫了wait(),sleep()或join()等方法處於封鎖狀態;
六、執行緒的優先順序
由高到低分別是highest,abovenormal,normal,belownormal,lowest;系統預設為threadpriority.normal
指定優先順序的**:mythread.priority=threadpriority.lowest;
C 執行緒點滴
1.執行緒 小方法 啟動 new thread start 2.在輔助線程中修改ui執行緒 主線程 中物件的屬性時,呼叫this.invoke invoke 生成同步方法呼叫 begininvoke 生成非同步方法呼叫。在多執行緒程式設計中,我們經常要在工作執行緒中去更新介面顯示,而 在多執行緒中直...
c 執行緒池 多執行緒
1。設定引數類 using system using system.collections.generic using system.text public class stateinfo 執行緒開啟方法類 using system using system.collections.generic ...
C 多執行緒 建立執行緒
c 中線程的建立一般是通過std thread類實現的,具體的實現方式有以下幾種 void operator int a 過載括號運算子。如果無參則為void operator 這裡有兩種方法通過成員函式建立。而這兩種方法恰好也就是靜態成員函式和非靜態成員函式的區別。靜態成員函式與物件無關,只屬於類...