创建一个作业队列或任务控制器,并用Java动态地向其中添加任务 [英] Create a Job Queue or Task Controller and dynamically add task to it in Java

查看:281
本文介绍了创建一个作业队列或任务控制器,并用Java动态地向其中添加任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我想创建一个作业队列来执行多个任务.但是,我的要求是我应该能够随时将任务添加到该作业队列中,并且所有这些任务应按顺序执行.我在互联网上搜索了一些解决方案,并找到了这两个链接1)

Hi all I want to create a job queue to execute multiple task.but,my requirement is i should be able to add tasks to that job queue any time and all those tasks should be executed sequentially. I searched some solutions in internet and found these two links 1)Java Thread Pool Executor Example 2)Java Executor Framework Tutorial and Best Practices. But i can't use both of these solution.Because after starting Executor service I can't add new task to the service. Because we know that It may throw InterruptedException or ConcurrentModificationException.

推荐答案

您可以使用BlockingQueue在另一个线程中等待,直到出现一个或多个Runnable.

You can use a BlockingQueue to keep waiting in a separate thread until one or more Runnable show up.

public class Mainer {
    private static final BlockingQueue<Runnable> queue = new ArrayBlockingQueue<>(15);

    public static void main(String[] args) {
        Thread t = new Thread(() -> {
            while (true) {
                try {
                    queue.take().run();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
        });
        t.start();

        for (int i = 0; i < 10; i++) {
            queue.add(() -> {
                System.out.println("Hello");
            });
        }
    }

}

这篇关于创建一个作业队列或任务控制器,并用Java动态地向其中添加任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆