executor 和task 優先於線程(68)

java.util.concurrent 包裏有一個Executor 框架java

  • 基於接口的任務執行工具
  • 只須要一行代碼
  • 提交一個runnable 方法
  • 優雅的終止(必須作到,否則虛擬機可能不會退出)

對於負載不重的服務服務器

  • Executors.newCachedThreadPool 就能知足
    • 不太適合大負載
    • 由於被提交的任務沒有排隊,而是直接交給線程執行,沒有空閒就會new 新的線程

大負載服務器框架

  • Executors.newFixedThreadPool
    • 包含固定數量線程
    • 最大限度的控制,直接使用ThreadPoolExecutor

請儘可能不要使用本身的工做隊列、也儘可能不要直接使用線程工具

  • Thread 是執行機制、又是工做單元(任務:task)
  • 如今兩者分開,task由Runnable、Callable來充當
    • 執行機制executor service

本質上講,executor 框架所作的工做是執行,就像Collection 框架作的是 彙集線程

相關文章
相關標籤/搜索