0

開いている ObjectOutputStream は最初に特定のオブジェクトを送信し、補完する ObjectInputStream はそれを正常に逆シリアル化します。この OIS は、別のスレッド クラスのコンストラクタに渡されます。これは、さらに (更新された) オブジェクトをシームレスに read() し続けるために必要です。この部分は起こっていません。ここでストリームが「コンテキスト切り替え」を行うときの要件について、私を逃れているものはありますか? どうもありがとう。

4

1 に答える 1

1

最も重要なことはflush()、ObjectInputStream を作成する前に ObjectOutputStream を作成することです。これを行わないと、デッドロックが発生する可能性があります。

ObjectInputStream を別のスレッドに渡しても問題は発生しません。実際、書き込むスレッドとは異なるスレッドから読み取ると、この問題を回避できます。

于 2012-08-15T13:12:59.390 に答える