マルチスレッド Java コンソール アプリケーションがあります。スレッドの 1 つはユーザーからの入力を読み取り、他のスレッドはコンソールにデータを出力します。この問題は、ユーザーが入力を入力しているときにライター スレッドが何かを出力すると発生します。ユーザーの邪魔になります。
出力の先頭に「\r」を書き、見栄えを良くするために行をクリアしました。ただし、ユーザーがその瞬間まで入力したものを次の行に出力したい。
たとえば、入力として 123456 を入力します。しかし、123と入力すると、
>123
ライタースレッドは「OUTPUT」を出力します。
>OUTPUT
>
以前に入力したもの ("123") を表示してから、残りの入力を入力します。
>OUTPUT
>123
jLine を使用するように提案されました。しかし、私はそれを達成できませんでした。jLine ライブラリの使用例を提供したり、代替ソリューションを提案したりして、私を助けてくれませんか?
ライター スレッドをブロックしないことが重要です。到着時に出力を印刷する必要があります。