Java任務隊列在不斷的學習中需要我們掌握很多相關的技術信息。 首先,下面我們就看看如何應用TaskQueue的具體問題。 Java任務隊列需要我們詳細的學習, 當然我們在不斷的使用中還需要注意相關信息的學習。 下面我們就先來看看TaskQueue(任務隊列)的具體應用。 下面我們就詳細的學習下。 在同一時刻,可能有很多任務需要執行, 而程序在同一時刻只能執行一定數量的任務, 當需要執行的任務數超過了程序所能承受的任務數時怎么辦呢? 這就有了先執行哪些任務,后執行哪些任務的規則。 TaskQueue類就定義了這些規則中的一種,它采用的是FIFO(先進先出,英文名是First In First Out)的方式,也就是按照任務到達的先后順序執行。TaskQueue類的定義。 Java任務隊列代碼如下: import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class TaskQueue { private List<Task> queue = new LinkedList<Task>(); // 添加一項任務 public synchronized void addTask(Task task) { if (task != null) { queue.add(task); } } // 完成任務后將它從任務隊列中刪除 public synchronized void finishTask(Task task) { if (task != null) { task.setState(Task.State.FINISHED); queue.remove(task); } } // 取得一項待執行任務 public synchronized Task getTask() { Iterator<Task> it = queue.iterator(); Task task; while (it.hasNext()) { task = it.next(); // 尋找一個新建的任務 if (Task.State.NEW.equals(task.getState())) { // 把任務狀態置為運行中 task.setState(Task.State.RUNNING); return task; } } return null; } } import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class TaskQueue { private List<Task> queue = new LinkedList<Task>(); // 添加一項任務 public synchronized void addTask(Task task) { if (task != null) { queue.add(task); } } // 完成任務后將它從任務隊列中刪除 public synchronized void finishTask(Task task) { if (task != null) { task.setState(Task.State.FINISHED); queue.remove(task); } } // 取得一項待執行任務 public synchronized Task getTask() { Iterator<Task> it = queue.iterator(); Task task; while (it.hasNext()) { task = it.next(); // 尋找一個新建的任務 if (Task.State.NEW.equals(task.getState())) { // 把任務狀態置為運行中 task.setState(Task.State.RUNNING); return task; } } return null; } }