残念なことに、中期的には、決して返されないメソッドを呼び出さなければならず、それを呼び出したスレッドを永久にフリーズする必要があります。幸いなことに、実際の呼び出しはシステム内の他の部分とほとんどやり取りせず、値を返しません。そのため、問題のあるコードを修正できるまで、別のスレッドで呼び出しを実行して、タイムアウトを超えた場合に監視して中断できるようにする必要があると考えています。
私がすでにこの問題を解決し、彼らの贈り物を並行パッケージに残したよりも明らかに賢い人たちです。これが並行パッケージの何かを初めて使用するので、私が最善のアプローチを選んでいることを確認したいと思います.
したがって、Excutors.newSingleThreadExecutor を呼び出して ExecutorService を取得し、それに Runnable を送信してから、タイムアウトをパラメーターとして受け入れる Future.get() のオーバーロードを呼び出すことを考えています。
実際に実行するタスクは、Runnable のコンストラクターに渡すことができるオブジェクトで 1 つの void メソッドを呼び出すことだけです。
これが正しいアプローチである場合、または近い場合は、時間に余裕がある場合は短いコード サンプルも提供していただければ幸いです。:)
ありがとう