如何進(jìn)行Java任務(wù)隊(duì)列的定義與代碼的分析,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有洞頭免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Java任務(wù)隊(duì)列需要我們詳細(xì)的學(xué)習(xí),當(dāng)然我們在不斷的使用中還需要注意相關(guān)信息的學(xué)習(xí)。下面我們就先來看看TaskQueue(任務(wù)隊(duì)列)的具體應(yīng)用。下面我們就詳細(xì)的學(xué)習(xí)下。
在同一時刻,可能有很多任務(wù)需要執(zhí)行,而程序在同一時刻只能執(zhí)行一定數(shù)量的任務(wù),當(dāng)需要執(zhí)行的任務(wù)數(shù)超過了程序所能承受的任務(wù)數(shù)時怎么辦呢?這就有了先執(zhí)行哪些任務(wù),后執(zhí)行哪些任務(wù)的規(guī)則。
TaskQueue類就定義了這些規(guī)則中的一種,它采用的是FIFO(先進(jìn)先出,英文名是First In First Out)的方式,也就是按照任務(wù)到達(dá)的先后順序執(zhí)行。TaskQueue類的定義。
Java任務(wù)隊(duì)列代碼如下:
import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class TaskQueue { private Listqueue = new LinkedList (); // 添加一項(xiàng)任務(wù) public synchronized void addTask(Task task) { if (task != null) { queue.add(task); } } // 完成任務(wù)后將它從任務(wù)隊(duì)列中刪除 public synchronized void finishTask(Task task) { if (task != null) { task.setState(Task.State.FINISHED); queue.remove(task); } } // 取得一項(xiàng)待執(zhí)行任務(wù) public synchronized Task getTask() { Iterator it = queue.iterator(); Task task; while (it.hasNext()) { task = it.next(); // 尋找一個新建的任務(wù) if (Task.State.NEW.equals(task.getState())) { // 把任務(wù)狀態(tài)置為運(yùn)行中 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 queue = new LinkedList (); // 添加一項(xiàng)任務(wù) public synchronized void addTask(Task task) { if (task != null) { queue.add(task); } } // 完成任務(wù)后將它從任務(wù)隊(duì)列中刪除 public synchronized void finishTask(Task task) { if (task != null) { task.setState(Task.State.FINISHED); queue.remove(task); } } // 取得一項(xiàng)待執(zhí)行任務(wù) public synchronized Task getTask() { Iterator it = queue.iterator(); Task task; while (it.hasNext()) { task = it.next(); // 尋找一個新建的任務(wù) if (Task.State.NEW.equals(task.getState())) { // 把任務(wù)狀態(tài)置為運(yùn)行中 task.setState(Task.State.RUNNING); return task; } } return null; } }
關(guān)于如何進(jìn)行Java任務(wù)隊(duì)列的定義與代碼的分析問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。