3

我需要执行一个线程队列。我需要只有一个线程正在执行,然后将其他线程放入队列中,当当前线程完成时,我需要传递给队列中的第一个线程。

我需要它来在我的 JTable 上实现实时搜索。该表包含 50.000 行,因此如果没有这种方法,性能真的很差。我不知道如何实现它。任何人都可以帮助我吗?谢谢!

4

2 回答 2

9

使用单线程Executorfrom Executors.newSingleThreadExecutor()。您可以将您的工作作为Runnable对象传递给 theExecutor并让它为您完成工作。

private final Executor executor = Executors.newSingleThreadExecutor();

public void doSomethingWith(final Object obj) {
    executor.execute(new Runnable() {

        public void run() {
            // Do something with obj
        }
    });
}

将要一次运行一次的代码放入run方法中。

于 2012-09-06T18:22:50.127 回答
0

SingleThreadExecutorfromjava.util.concurrency是您问题的答案...

-它的螺纹尺寸为 1....

-先完成第一个任务,然后再进行第二个任务,

-它维护自己的隐藏队列以跟踪剩余的任务......

于 2012-09-06T18:23:33.750 回答