併發程式設計學習筆記(一 執行緒基礎)

2022-05-03 13:06:35 字數 1303 閱讀 6838

1、程序:計算機資源分配的基本單位

,它讓作業系統的併發成為可能。

2、執行緒:計算機資源排程的基本單位

,它讓程序內部的併發成為可能。

3、注意點:乙個程序雖然包括多個執行緒,但是這些執行緒是共同

享有程序占有的資源和位址空間的

1、通過繼承thread建立

1

public

class threadtest extends

thread 78

public

static

void

main(string args)

14 }

2、通過實現runnable介面建立

public

class runnabletest implements

runnable

public

static

void

main(string args)

}

3、通過callable介面獲取執行緒返回值

public

class

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...