スケジュールされたスレッド プール--->
private static ScheduledExecutorService pendingCheckScheduler = Executors.newScheduledThreadPool(1);
スレッド 1 --->
private ScheduledFuture<?> pendingTranStatusCheckHandle=pendingCheckScheduler.scheduleAtFixedRate(new PendingTranStatusCheck(),0,checkForPendingTrans,TimeUnit.SECONDS );
スレッド2--->
private ScheduledFuture<?> forcibleBatchCloseHandle=pendingCheckScheduler.schedule(new ForcibleBatchClose(), waitForPendingTrans, TimeUnit.MINUTES);
Thread 1
10秒ごとに実行されています。Thread 2
30分後に開始することになっています。
Thread 1
Thread2
は、30 分後に開始することが期待されている場所で、1 時間後に開始する期待どおりに動作しています。
のレイテンシがthread1
この問題の原因ですか?もしそうなら、thread2
スレッド プールにスレッドが 1 つしかないことを考えると、スレッド 1 が終了したときにスレッド 1 が優先されるはずです.なぜThread2
ストレッチが長すぎて 1 時間後に開始できないのですか?
私は無知で、いくつかの指針を期待しています。助けてください。