如何进行Java任务队列的定义与代码的分析

发布时间:2021-11-20 17:53:39 作者:柒染
来源:亿速云 阅读:318

如何进行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任务队列的定义与代码的分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. java 枚举的定义与用法
  2. Beanstalkd消息/任务队列的案例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:如何配置Git

下一篇:怎么搭建Mysql单机实例

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》