- 締切済み
javaでスレッド内でパイプ処理を用いて処理をしているのですがデッドロ
javaでスレッド内でパイプ処理を用いて処理をしているのですがデッドロックが発生してしまいました。 Javadocには記載されているのですがどのような原因かが分からないので教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- salsberry
- ベストアンサー率69% (495/711)
回答No.2
質問文にある内容だけでは回答できないので ・そのパイプ処理というのは具体的には何をしているのか PipedInputStreamやPipedWriterなどのクラスを使った処理なのか、全く別の話なのか ・どうやってデッドロックであると判断したのか ・何のJavadocに何と記載されているのか を補足してください。
- naoikun7
- ベストアンサー率40% (2/5)
回答No.1
AがロックしているオブジェクトをBがウェイトしていて、BがロックしているオブジェクトをAがウェイとしているとか? お前が開放すれば俺も開放するよみたいなことをA,Bがお互いに言ってにらみ合っているような状態です。 この場合ロックする順序を一方に合わせればデッドロックは防げます。 詳しい状況が書かれていないので(書けと言っているわけではありません)何とも言えませんが一般的な原因はこういうものです。