1、程序:計算機資源分配的基本單位
,它讓作業系統的併發成為可能。
2、執行緒:計算機資源排程的基本單位
,它讓程序內部的併發成為可能。
3、注意點:乙個程序雖然包括多個執行緒,但是這些執行緒是共同
享有程序占有的資源和位址空間的
1、通過繼承thread建立
1public
class threadtest extends
thread 78
public
static
void
main(string args)
14 }
2、通過實現runnable介面建立
publicclass runnabletest implements
runnable
public
static
void
main(string args)
}
3、通過callable介面獲取執行緒返回值
publicclass
callabletest
return
result;
});futuretask
futuretask2 = new futuretask<>(() ->
return
result;
});thread thread = new
thread(futuretask);
thread.start();
system.err.println(futuretask.get());
thread thread2 = new
thread(futuretask2);
thread2.start();
system.err.println(futuretask2.get());
}}
1、建立:new關鍵字建立物件時的狀態。
2、就緒:呼叫start()方法,執行緒進入就緒狀態,等待cpu排程。
3、執行:獲取cpu執行權時允許執行緒內部程式的狀態。
4、阻塞:執行緒被掛起,或是「睡著」了,通常是在等待另乙個鎖。
當執行緒嘗試進入乙個synchronize的**塊或方法時,如果鎖已經被其他執行緒占用的話就會被阻塞,直到另乙個執行緒走完臨界區或執行wait()方法後,當前執行緒才有機會爭奪進入臨界區的權力。
5、等待:分為有限等待和無限等待。
6、結束:執行緒結束,分為執行完畢或中斷等等
併發程式設計(一) 執行緒安全
1 編寫執行緒安全的 本質上就是管理對狀態的訪問,而且通常都是共享的 可變的狀態。通俗的講,乙個物件的狀態就是它的資料,儲存在狀態變數中,比如例項域或靜態域以及其他附屬物件的域等等。我們討論執行緒安全好像是關於 的,但是我們真正要做的,是在不可控制的併發訪問中保護資料。無論何時,只要多於乙個的執行緒...
Posix多執行緒程式設計學習筆記(一) 執行緒基礎(2)
6 名稱 pthread detach 功能 使執行緒進入分離狀態。標頭檔案 include 函式原形 int pthread detach pthread t tid 引數 返回值 若成功則返回0,否則返回錯誤編號。7 名稱 pthread cancel 功能 取消同一程序中的其他執行緒 標頭檔案...
併發程式設計專題(一) 執行緒安全問題
當多個執行緒同時共享,同乙個全域性變數或靜態變數,做寫的操作時,可能會發生資料衝突問題,也就是執行緒安全問題。但是做讀操作是不會發生資料衝突問題。案例 需求現在有100張火車票,有兩個視窗同時搶火車票,請使用多執行緒模擬搶票效果。public class threadtrain implements...