新聞中心
Java任務(wù)隊列需要我們詳細(xì)的學(xué)習(xí),當(dāng)然我們在不斷的使用中還需要注意相關(guān)信息的學(xué)習(xí)。下面我們就先來看看TaskQueue(任務(wù)隊列)的具體應(yīng)用。下面我們就詳細(xì)的學(xué)習(xí)下。

為田家庵等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及田家庵網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、田家庵網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
在同一時刻,可能有很多任務(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ù)隊列代碼如下:
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
- public class TaskQueue {
- private List
queue = new LinkedList (); - // 添加一項任務(wù)
- public synchronized void addTask(Task task) {
- if (task != null) {
- queue.add(task);
- }
- }
- // 完成任務(wù)后將它從任務(wù)隊列中刪除
- public synchronized void finishTask(Task task) {
- if (task != null) {
- task.setState(Task.State.FINISHED);
- queue.remove(task);
- }
- }
- // 取得一項待執(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 (); - // 添加一項任務(wù)
- public synchronized void addTask(Task task) {
- if (task != null) {
- queue.add(task);
- }
- }
- // 完成任務(wù)后將它從任務(wù)隊列中刪除
- public synchronized void finishTask(Task task) {
- if (task != null) {
- task.setState(Task.State.FINISHED);
- queue.remove(task);
- }
- }
- // 取得一項待執(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;
- }
- }
以上就是對Java任務(wù)隊列的詳細(xì)介紹。
【編輯推薦】
- JavaScript最讓人費(fèi)解的十件事
- 了解Java日志系統(tǒng)框架的設(shè)計與實現(xiàn)
- 在敏捷開發(fā)中編寫高質(zhì)量Java代碼
- Java類中熱替換的概念、設(shè)計與實現(xiàn)
- Python編程語言在Java中的使用效果
分享文章:Java任務(wù)隊列的定義與代碼的詳細(xì)介紹
網(wǎng)頁鏈接:http://m.fisionsoft.com.cn/article/ccccsds.html


咨詢
建站咨詢
