gpt4 book ai didi

java - 我想创建一个 Java 队列,将可运行对象推送到其中,然后一个一个地执行它们。这是正确的吗?

转载 作者:行者123 更新时间:2023-11-29 05:37:51 25 4
gpt4 key购买 nike

所以下面是我对管理队列中的可运行对象的第一个猜测。他们被一一处决。目前只有一个问题:

  1. 如何定期检查前一个线程是否仍在运行,以免开始执行列表中的第二个线程?

    Queue<Object> qe=new LinkedList<Object>();

    for (int i = 0; i < 5; i++) {

    RunnableObject ro = new RunnableObject();

    qe.add(ro);
    }

    for (int i = 0; i < qe.size(); i++) {

    qe.peek().start;
    qe.poll();

    }

最佳答案

我会使用专为执行此操作而设计的 ExecutorService。 2004年加入Java 5.0,包含队列和线程池。

ExecutorService es = Executors.newSingleThreadExecutor();

es.sumbit(new RunnableObject()); // submit Runnable not Threads.

这将重复使用相同的线程,减少开销并确保您使用的线程永远不会超过您设置的数量,在本例中为 1,但对于固定大小的线程池可以说是 5。

我建议您阅读 High Level Concurrency Objects tutoria

关于java - 我想创建一个 Java 队列,将可运行对象推送到其中,然后一个一个地执行它们。这是正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com