我需要执行一个线程队列。我需要只执行一个线程,然后将其他线程放入队列中,当前线程完成后,我需要传递给队列中的第一个。
我需要在我的JTable上实现实时搜索。该表包含50.000行,因此没有这种方法,性能非常糟糕。我不知道如何实现它。有人可以帮帮我吗?谢谢!
答案 0 :(得分:9)
使用Executor
中的单线程Executors.newSingleThreadExecutor()
。您可以将Runnable
个对象的作业传递给Executor
,让它为您完成工作。
private final Executor executor = Executors.newSingleThreadExecutor();
public void doSomethingWith(final Object obj) {
executor.execute(new Runnable() {
public void run() {
// Do something with obj
}
});
}
将您希望在run
方法中一次运行一次的代码放入。
答案 1 :(得分:0)
SingleThreadExecutor
的 java.util.concurrency
就是您问题的答案......
- 螺纹尺寸为1 ....
- 首先完成第一项任务,然后再转到第二项
- 它维护自己的隐藏队列,以便随时跟踪任务的跟踪......