執行緒狀態 執行緒池 Lambda表示式

2021-09-02 22:56:00 字數 1214 閱讀 2954

a. new 新建(例如:剛剛買的新車,還未駕駛)

b. runnable 可執行(例如:駕駛車)

c. blocked 鎖阻塞(例如: 走在路上,堵車了)

d. waiting 無限等待(例如: 車子由於違停的情況,被交警拖走了,需要通知取車)

e. timed waiting 計時等待(例如: 車子走在路上,等待紅綠燈,紅燈倒計時結束)

f. teminated 被終止(例如:車子使用完畢,賣出去了,銷毀了)

2.1、方法
等待與喚醒方法:

a.等待: object 當中的方法 wait()

b.喚醒: object 當中的方法 notify() notifyall()

2.2、**結構
結構: run() - while(true) -> synchronized(鎖) -> if wait -> 改變bian ->notify
3.1、執行緒池的含義及優點
含義:

其實就是乙個容納多個執行緒的容器,其中的執行緒可以反覆使用,省去了頻繁建立執行緒物件的操作,無需反覆建立執行緒而消耗過多資源。

優點: a.資源消耗降低

b.響應速度變快

c.管理執行緒容易

3.2、執行緒池操作步驟
a. executorservice service = executors.newfixedthreadpool(2); //建立執行緒池物件。

b. myrunnable r = new myrunnable(); //建立runnable介面子類物件。(task)

c. service.submit(r); //提交runnable介面子類物件。(take task)

d. service.shutdown(); //關閉執行緒池(一般不做)。

標準格式:

(type1 param1,type2 param2)->

簡化格式:

編譯器都可以推斷出lambda表示式的引數型別,所以引數型別可以省略(param1,param2)->

省略小括號:

當lambda表示式的引數個數只有乙個,可以省略小括號:param->

省略大括號:

當lambda表示式只包含一條語句時,可以省略大括號、return和語句結尾的分號;param->語句體

執行緒狀態 執行緒池

1.執行緒狀態變遷 2.為什麼notify notifyall wait要在同步方法或塊中執行 2.1在j a中,所有物件都能夠被作為 監視器monitor 指乙個擁有乙個獨佔鎖,乙個入口佇列和乙個等待佇列的實體entity。所有物件的非同步方法都能夠在任意時刻被任意執行緒呼叫,此時不需要考慮加鎖的...

執行緒間通訊 執行緒池 Lambda表示式

注意注意注意!lambda是1.8的新特性,之前的版本用不了的。lambda主要用於簡化 對於提高效率,減少記憶體等沒有作用 最典型的例題就是生產者與消費者模型 1 定義乙個生產手機車間的類phonefactory 2 定義乙個生產線程任務的類producetask 並實現執行緒任務介面runnab...

執行緒池的狀態

running 這是最正常的狀態,接受新的任務,處理等待佇列中的任務。執行緒池的初始化狀態是running。執行緒池被一旦被建立,就處於running狀態,並且執行緒池中的任務數為0。shutdown 不接受新的任務提交,但是會繼續處理等待佇列中的任務。呼叫執行緒池的shutdown 方法時,執行緒...