生成java实现一个任务队列,往队列里放任务,自动按顺序执行,只能执行一个任务的代码
生成java实现一个任务队列,往队列里放任务,自动按顺序执行,只能执行一个任务的代码
生成java实现一个任务队列,往队列里放任务,自动按顺序执行,只能执行一个任务的代码
用户933567818
2024年03月12日
|
浏览 112
Java
答案是使用BlockingQueue
结合ExecutorService
来实现一个任务队列,往队列里放任务,自动按顺序执行,只能执行一个任务的Java代码。以下是示例代码:
复制代码
import java.util.concurrent.*;
public class TaskQueue {
private final BlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue<>();
private final ExecutorService executor = Executors.newSingleThreadExecutor();
public TaskQueue() {
executor.execute(() -> {
try {
while (true) {
taskQueue.take().run();
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
});
}
public void addTask(Runnable task) {
taskQueue.add(task);
}
public void shutdown() {
executor.shutdown();
}
public static void main(String[] args) {
TaskQueue taskQueue = new TaskQueue();
taskQueue.addTask(() -> {
System.out.println("Task 1 executed");
});
taskQueue.addTask(() -> {
System.out.println("Task 2 executed");
});
taskQueue.addTask(() -> {
System.out.println("Task 3 executed");
});
taskQueue.shutdown();
}
}
这段代码创建了一个TaskQueue
类,使用BlockingQueue
来存储任务,并且通过ExecutorService
的newSingleThreadExecutor
方法来确保只有一个线程在执行任务,从而实现了往队列里放任务,自动按顺序执行,只能执行一个任务的功能。
我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;