创建一个作业队列或任务控制器,并用Java动态地向其中添加任务

编程入门 行业动态 更新时间:2024-10-28 10:27:32
本文介绍了创建一个作业队列或任务控制器,并用Java动态地向其中添加任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

大家好,我想创建一个作业队列来执行多个任务.但是,我的要求是我应该能够随时将任务添加到该作业队列中,并且所有这些任务应按顺序执行.我在互联网上搜索了一些解决方案,并找到了这两个链接1) Java线程池执行程序示例 2) Java Executor框架教程和最佳做法.但是我不能同时使用这两种解决方案.因为启动Executor服务后,我无法向该服务添加新任务.因为我们知道它可能会抛出InterruptedException或ConcurrentModificationException.

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动态地向其中添加任务

本文发布于:2023-11-23 17:43:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1622334.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业   队列   创建一个   控制器   动态

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!