1

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

  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();
    
    }
    
4

1 回答 1

3

我会使用旨在执行此操作的 ExecutorService。2004 年在 Java 5.0 中添加,它包含一个队列和一个线程池。

ExecutorService es = Executors.newSingleThreadExecutor();

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

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

我建议你阅读高级并发对象教程l

于 2013-09-13T08:34:02.430 回答