java.util.concurrent包下的新類。
LinkedBlockingQueue
就是其中之一,是一個阻塞的線程安全的隊列,底層采用鏈表實現。
LinkedBlockingQueue
LinkedBlockingQueue
構造的時候若沒有指定大小,則默認大小為Integer.MAX_VALUE
,當然也可以在構造函數的參數中指定大小
- 創建一個線程池,隊列基於LinkedBlockingQueue
lazy val executor = new ThreadPoolExecutor(20, 20, 0L, TimeUnit.MILLISECONDS,
//基於阻塞隊列,大小設置為100
new LinkedBlockingQueue(100),
//拒絕策略,當隊列滿了之后,又達到了max size,將會將任務提交到主線程中進行處理
new ThreadPoolExecutor.CallerRunsPolicy()
)
// println(s"THREADS = $THREADS")
// Executors.newFixedThreadPool(THREADS)
}