您好,登錄后才能下訂單哦!
如何進行Java任務隊列的定義與代碼的分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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; } }
關于如何進行Java任務隊列的定義與代碼的分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。