20 案例實戰 為 Async實現乙個自定義執行緒池

2021-10-03 03:59:56 字數 922 閱讀 4742

**:

### 五、為什麼要給@async自定義執行緒池?

@async註解,在預設情況下用的是******asynctaskexecutor執行緒池,該執行緒池不是真正意義上的執行緒池,因為執行緒不重用,每次呼叫都會新建一條執行緒。

可以通過控制台日誌輸出檢視,每次列印的執行緒名都是[task-1]、[task-2]、[task-3]、[task-4].....遞增的。

@async註解非同步框架提供多種執行緒

******asynctaskexecutor:不是真的執行緒池,這個類不重用執行緒,每次呼叫都會建立乙個新的執行緒。

synctaskexecutor:這個類沒有實現非同步呼叫,只是乙個同步操作。只適用於不需要多執行緒的地方

threadpooltaskscheduler:可以使用cron表示式

### 六、為@async實現乙個自定義執行緒池

#### 步驟1:配置執行緒池

```@configuration

@enableasync

public class syncconfiguration

}```

#### 步驟2: 為@async指定執行緒池名字

```

@async("scorepooltaskexecutor")

public void addscore2() catch (interruptedexception e)

}```### 七、課後練習

在現實的網際網路專案開發中,針對高併發的請求,一般的做法是高併發介面單獨執行緒池隔離處理。

假設現在2個高併發介面:

乙個是修改使用者資訊介面,重新整理使用者redis快取.

訪問:非同步方法內部執行緒名稱被修改score-

SparkSQL 六 案例實戰

首先我們的資料來源如下 tbdate這張表記錄的是時間資訊 tbstockdetail這張表記錄的訂單的詳細資訊 tbstock這張表將訂單與實踐和地點兩個維度的資訊連線在一起。資料屬性如下 每個訂單可能包含多個貨品,每個訂單可以產生多次交易,不同的貨品有不同的單價。也就是說 tbstock與tbs...

90 (案例)Lambda案例演示一

從匿名內部類到最簡化的lambda表示式逐漸演示 public inte ce demo02cookpublic class demo02 lambda方式 引數列表 一些重寫方法的 makecook lambda方式 繼續簡化 3 一些 如果 中的 只有一行,無論是否有返回值,都可以省略 retu...

02 案例一 阿善沒用

a1是agent的名字 定義的source,channel,sink的個數可以是多個,中間用空格隔開 定義的名字可以隨便起建議大家和官網的案例一致,方便後續查閱 定義source a1.sources r1 定義channel a1.channels c1 定義sink a1.sinks k1 宣告...