いくつかのステップを実行するツールを作成しました1..nいくつかのステップはユーザーの操作を必要とします(System.inからの読み取り)他のステップは、いくつかの条件が満たされるか、ユーザーが何らかのキーを押すまでループします(ユーザーがキーを押したときにループが終了し、メインが次のステップに進む必要があります)
キーループの割り込みを提供するこれらのステップに対して私が行ったことは、System.inから読み取るスレッドを生成することです->キーが押された場合、このスレッドはステップを中断します。これは正常に機能しますが、ループ条件が満たされると、このキーリスナースレッドはSystem.inでブロックされるため、ユーザーの操作を必要とする次のステップが影響を受けます。
私のキーリスナースレッドの実行は基本的に次のとおりです。
new InputStreamReader(System.in).read() > 0;
もちろんどのブロックなので、これを修正する方法を探していました