0

Hazelcastの分散タスクを頻繁に使用しており、タスク自体が実行される前であっても、タスクを開始するだけで2秒を超える場合があることに気付きました。これは1台のマシンで行いました。つまり、ネットワークのオーバーヘッドはありません。実行されたタスク自体は、call()メソッドに1行のコードしかありません(最初と最後にSystem.currentTimeMillis()を配置しました)、渡された引数「client」をコンストラクター呼び出しに格納します。他には何もありません。

タスクは次のように開始されます。

FutureTask<Member> task = new DistributedTask<Member>(new NotifyWaitingClientTask(client),
            theId);
    ExecutorService executorService = hazelcastInstance.getExecutorService();
    executorService.execute(task);
...
task.get();

質問は:これは通常の時間ですか?ローカルマシンではかなりミリ秒になると予想していました。

4

1 に答える 1

1

時間がかかりすぎるタスクが2つあり、Executorスレッドがすでに占有されていない限り、これは正常ではありません。したがって、実行可能なスレッドができるまでタスクは開始されず、その待ち時間がわかります。

そうでない場合は、実行して問題を再現できるコードを考えてください。

ファッド

ヘーゼルキャスト

于 2011-04-20T10:22:10.020 に答える