計劃執行緒池和單執行緒執行器之間的區別。
| 序列號 | 要點 | 計劃的執行緒池 | 單執行緒執行器 |
|---|---|---|---|
| 1 | 基礎 | 建立一個執行緒池,可安排命令在給定的延遲後執行或週期性執行. | 保證順序執行任務,並且任何給定時間都不會有一個以上任務處於活動狀態 |
| 2 | 佇列 | 它使用延遲佇列來儲存任務。根據時間延遲計劃任務。 | 它使用阻塞佇列。 |
| 3 | 執行緒生存期 | 即使在保持池中,保持的執行緒數,即使它們處於空閒狀態 | 由於任務而遭到殺死時重新建立執行緒。 |
| 4. | 執行緒池大小 | 它始終具有單執行緒執行。 | 執行緒池可以從零執行緒增長到 Integer.MAX_VALUE |
| 5. | 用例 | 我們應在希望限制併發任務時使用固定執行緒池 | 當需要確保任務 1 始終在任務 2 之前執行時,可以使用此型別的池。 |
計劃執行緒池的示例
public class ScheduledThreadPoolExample {
public static void main(String args[]) {
ScheduledExecutorService services = Executors.newScheduledThreadPool(10);
services.schedule(new Task(), 10, TimeUnit.SECONDS);
services.scheduleAtFixedRate(new Task(), 15, 10, TimeUnit.SECONDS);
//(new Thread(new Main())).start();
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}單執行緒執行器的示例
public class Main {
public static void main(String args[]) {
ExecutorService services = Executors.newSingleThreadExecutor();
Future<?> future = services.submit(new Task());
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP