3

スレッドのキューを実行する必要があります。実行中のスレッドを 1 つだけにしてから、他のスレッドをキューに入れる必要があります。現在のスレッドが完了したら、キューの最初のスレッドに渡す必要があります。

JTable にライブ検索を実装するには、それが必要です。テーブルには 50.000 行が保持されるため、この方法を使用しないとパフォーマンスが非常に悪くなります。実装方法がわかりません。誰でも私を助けることができますか?ありがとう!

4

2 に答える 2

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

一度に 1 回実行するコードをrunメソッドに入れます。

于 2012-09-06T18:22:50.127 に答える
0

SingleThreadExecutorからjava.util.concurrencyあなたの質問への答えです...

-スレッドサイズは1です。

-2番目に移動する前に、最初に1番目のタスクを完了します。

-それはそれと一緒に残っているタスクの追跡を維持するためにそれ自身の隠されたキューを維持します...

于 2012-09-06T18:23:33.750 に答える