私のシナリオは次のとおりです。
リクエストごとに指定されたタイムアウト期間内にタイムアウトまたは応答を生成する必要があるサーバーを実装しています。したがって、各要求にはサーバーの観点からの応答が保証されます(もちろん、応答はトランスポート層の障害などのためにクライアントに到達しない可能性があります...)。
上記のセマンティクスを実装するために、各リクエストはスレッドを生成し(実際には、スレッドプールから利用可能なスレッドを取得します)、同期オブジェクトの通知を介してその応答を待ちます。待機期間は、オブジェクトの待機メソッドに送信されるタイムアウトパラメータによって制限されます。生成されたスレッドは、リクエストの処理方法を実際に知っているオブジェクトにリクエストを委任します。このオブジェクトの呼び出しAPIは既知ですが、呼び出しが無期限にハングしないことを指定する既知のサービスレベルアグリーメントはありません。(具体的には、私の場合、サーバーは実際にはCORBAクライアントですが、それは重要ではありません。)
さて、私が興味を持っているのは、現在メソッド呼び出しでブロックされているにもかかわらず、そのスレッドが応答していないことを何らかの方法で検出し、それを強制終了(中断)する方法があるかどうかです。
ちなみに、私はスレッドオブジェクトへの参照を保持し、事前に指定された時間が経過した後、そのinterrupt()メソッドを呼び出すことができることを知っています。残念ながら、それは「割り込み」セマンティクスを保証しません...
皆さんありがとう