1,鎖:控制多執行緒併發操作時,執行緒安全問題。
舉例:static bool done; //執行緒是否完成標識
static object locker = new object(); //執行緒鎖
static void main(string args)
static void test()}}
結果:done. thread name:thread
上例中有主副兩個執行緒,理論上來講主線程和副執行緒不分先後都有可能呼叫test方法,實際情況是副現場呼叫先呼叫test方法,程序鎖定,主程序無法呼叫。
2,manualresetevent實現程序訊號機制
static object locker = new object();
static manualresetevent signal = new manualresetevent(false);
static void main(string args)
else if (input.trim().tolower() == "run")
else if (input.trim().tolower() == "exit")}}
static void go()}}
當輸入stop時進行暫停等待訊號,輸入run獲得進行訊號開始執行。
三 多執行緒斷點續傳
conn.setrequestmethod get 獲取檔案總長度,然後建立長度一致的臨時檔案 向伺服器請求部分資料 conn.setrequestproperty range bytes startindex endindex conn.connect if conn.getresponsecod...
三 多執行緒與上廁所
世界上最讓人坐立不安,最知道心急的時候,是拿著手紙捂著肚子而廁所裡有人的時候。現在我們有兩個人,乙個在廁所裡,乙個在廁所外。廁所外的人一直問 你好了沒?while 廁所裡的人沒出來 這個時候就會變成,裡面的人拉的不舒服,外面的人也難受。現在我們把條件放寬一點,假如外面的人不是很急,那麼他還是這麼問的...
三 多執行緒基礎之synchronized
二.多執行緒基礎之 volatile 三.多執行緒基礎之synchronized 四.多執行緒使用及執行緒間的通訊 五.多執行緒高階之鎖 六.多執行緒併發之容器 七.原子類和 cas 八.併發工具類 九.執行緒池 它主要確保多個執行緒 在同乙個時刻,只能有乙個執行緒處於方法或者同步塊中,它保證了執行...