TaskQueue

作者: zw3e | 来源:发表于2020-01-17 13:24 被阅读0次

    FIFO(先进先出,英文名是First InFirst Out)的方式,也就是按照任务到达的先后顺序执行。TaskQueue类的定义。

    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; 

            } 

        }

    相关文章

      网友评论

          本文标题:TaskQueue

          本文链接:https://www.haomeiwen.com/subject/owpczctx.html