千鋒逆戰班,周總3 14

2021-10-03 21:27:16 字數 2582 閱讀 4365

高階多執行緒

執行緒池概念:

獲取執行緒池:

callable介面

public

inte***ce

callable

與runnable介面類似,也是宣告可執行的任務;

但是callable具有泛型返回值,並且可以宣告異常。

future介面

future

result1 = es.

submit

(task1)

;

integer value1 = result1.

get(

);

同步與非同步:

lock介面

void

lock()

;//獲取鎖,如鎖被占用,則等待。

boolean

trylock()

// 嘗試獲取鎖(成功返回true 失敗返回false 不阻塞)

void unlock //釋放鎖

重入鎖

reentrantlock 這是lock 介面的乙個實現類, 宣告:

lock lock =

newreentrantlock();//這是建立重入鎖物件

使用lock,需要明確的寫上鎖和釋放鎖!

為了避免拿到鎖的執行緒在執行期間出現異常,導致程式終止,沒有釋放鎖!應用try{}finally{}來保證,無論正確執行與否,最終都會釋放鎖!

讀寫鎖

reentrantreadwritelock lock=

newreentrantreadwritelock()

;//宣告讀寫鎖:讀鎖與寫鎖是分離的

readlock readlock=lock.

readlock()

;//讀鎖

writelock writelock=lock.

writelock()

;//寫鎖

collections中的工具方法
public

static

collection

synchronizedcollection

(collection

c)public

static

list

synchronizedlist

(list

list)

public

static

setsynchronizedset

(set

s)public

static

mapsynchronizedmap

(map

m)public

static

sortedset

synchronizedsortedset

(sortedset

s)public

static

sortedmap

synchronizedsortedmap

(sortedmap

m)

介面統

一、維護性高,但效能沒有提公升,均以synchronized實現

copyonwritearraylist

copyonwritearrayset

concurrenthashmap

queue介面(佇列)

boolean add(e e)//順序新增乙個元素(到達上限後,再新增則丟擲異常)

e remove()//獲得第乙個元素並移除(如果佇列沒有元素時,則拋異常)

e element()//獲得第乙個元素(如果佇列沒有元素時,則拋異常)

boolean offer(e e)//順序新增乙個元素(到達上線後,在新增則返回false)

e poll()//獲得第乙個元素並移除(如果佇列沒有元素,則返回null)

e keep() //獲得第乙個元素但不移除(如果佇列沒有元素,則返回null)

concurrentlinkedqueue

blockingqueue介面(阻塞佇列)

void

put(e e)

//將指定元素插入此佇列中,如果沒有可用空間,則等待

e take()

//獲取並移除此佇列頭部元素,如果沒有可用元素,則等待

arrayblockingqueue:

陣列結構實現,有界佇列。(手工固定上限)

blockingqueue

abq=

newarrayblockingqueue

(10);

//(佇列長度)

linkedblockingqueue:

鍊錶結構實現,無界佇列。(預設上限integer.max_value)

blockingqueue

lbq=

newlinkedblockingqueue

();

千鋒逆戰班,周總3 21

i o框架 方向 1 輸入流 2 輸出流 單位 1 位元組流 2 字元流 功能 1 節點流 2 過濾流 位元組流的父類 1 inputstream 抽象類 2 outputstream 抽象類 位元組節點流 1 fileinputstream 2 fileoutputstream 位元組過濾流 1 ...

千鋒逆戰班,作業3 16

3 對於fileinputstream來說,從方向上來分,他是輸入流,從資料單位上分,他是位元組流,從功能上分,他是節點流。4fileinputstream有三個過載的read方法,其中 無參的read方法返回值為int型別,表示單個位元組值。int read byte bs 方法返回值表示讀取到的...

千鋒逆戰班,陳強 在千鋒「逆戰」學習第 22天

string字串的常用方法 1.tostring 返回物件本身 2.substring 陣列的下標 返回乙個新的字串,它是此字串的乙個子字串。從括號定義的下標開始 3.touppercase 將字串中的字母全部變成大寫 4.tolawercase 將字串中的字母全部變成小寫 5.trim 去掉字串前...