多執行緒筆記

2021-10-23 07:02:09 字數 2700 閱讀 4632

1.執行緒的建立方法

繼承thread類

實現runnable介面(重寫run方法)

實現callable介面(重寫call方法)

2.靜態**

簡單來說,靜態**就是**物件和目標物件實現同樣的介面,**物件會將目標物件傳遞進來,用目標物件來呼叫方法並新增自己的操作。

new thread(()->system.out.println(「通過lambda表示式重寫run方法」))

也就是說,thread裡的target接受目標物件,並且thread的run方法使用target的run方法

3.執行緒的五大狀態

新建狀態、就緒狀態、執行狀態、阻塞狀態、終止狀態

4.執行緒的常用方法

睡眠sleep

禮讓yield

插隊join

優先順序setpriority getpriority

狀態getstate

守護執行緒setdaemon(true)

停止stop(建議設定flag進行控制)

5.同步和鎖

synchronized 可同步**塊和方法

synchorinized() {}

lock 只能用於**塊

reentrantlock lock = new reentrantlock();

try  finally
copyonwritearraylist

6.死鎖的四個條件

互斥條件、請求和保持條件、不剝奪條件、迴圈等待條件

7.執行緒池

executors和executorservice

1、建立服務newfixedthreadpool

2、執行操作execute submit

3、獲取結果 get

4、關閉服務 shutdown

8.執行緒通訊

生產者消費者問題

管程法(緩衝區)和訊號燈法(flag)

public

class

testpc

}class

producer

extends

thread

@override

public

void

run()}

}class

consumer

extends

thread

@override

public

void

run()}

}class

chicken

}class

container

catch

(interruptedexception e)

} chickens[count]

= chicken;

count++

;this

.notifyall()

;}public

synchronized chicken pop()

catch

(interruptedexception e)

} count--

; chicken chicken = chickens[count]

;this

.notifyall()

;return chicken;

}}

public

class

testpc2

}class

actor

extends

thread

@override

public

void

run(

)else}}

}class

audience

extends

thread

@override

public

void

run()}

}class

tvcatch

(interruptedexception e)

} system.out.

println

("演員表演了"

+ voice)

;this

.notifyall()

;this

.voice = voice;

this

.flag =

!this

.flag;

}public

synchronized

void

watch()

catch

(interruptedexception e)

} system.out.

println

("觀眾**了了"

+this

.voice)

;this

.notifyall()

;this

.flag =

!this

.flag;

}}

多執行緒筆記

1 stdin fileno 在unix一些系統呼叫中使用到stdin fileno表示標準輸入,stdout fileno表示標準輸出,stderr fileno表示標準出錯,使用時需要加標頭檔案 在unix下還有stdin,stdout,stderr表示同樣的含義。stdin fileno與st...

多執行緒筆記

一.程序 就是cpu所要執行的乙個任務 自己理解的 執行緒 執行緒是乙個併發執行的順序流,乙個程序包括多個順序執行流程,這執行流程稱為執行緒 就是任務中許多的 二.執行緒排程分配cpu的時間片段給不同的執行緒,得到時間片段的執行緒被cpu執行,其他執行緒等待,執行緒排程會盡可能的分配時間片段取執行。...

多執行緒筆記

掌握的 1.兩種方式建立執行緒 繼承,實現 2.繼承和實現的區分 3.執行緒的生命週期 4.不同狀態下,所對應的方法。通過哪些方法,可以讓執行緒達到某個狀態。5.同步 塊,同步方法。1.學習多執行緒的原因?生活中 程式 乙個完整的功能 方法,沒有被執行 程序 乙個完整的功能 方法,被執行 執行緒 程...