我需要执行一个线程队列。我需要只有一个线程正在执行,然后将其他线程放入队列中,当当前线程完成时,我需要传递给队列中的第一个线程。
我需要它来在我的 JTable 上实现实时搜索。该表包含 50.000 行,因此如果没有这种方法,性能真的很差。我不知道如何实现它。任何人都可以帮助我吗?谢谢!
我需要执行一个线程队列。我需要只有一个线程正在执行,然后将其他线程放入队列中,当当前线程完成时,我需要传递给队列中的第一个线程。
我需要它来在我的 JTable 上实现实时搜索。该表包含 50.000 行,因此如果没有这种方法,性能真的很差。我不知道如何实现它。任何人都可以帮助我吗?谢谢!
使用单线程Executor
from 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
方法中。
SingleThreadExecutor
fromjava.util.concurrency
是您问题的答案...
-它的螺纹尺寸为 1....
-先完成第一个任务,然后再进行第二个任务,
-它维护自己的隐藏队列以跟踪剩余的任务......