書き込みスレッドを作成したいコードを書き込もうとしています。実行したいときに、この例外が発生しました。このトピックについて私が見た各投稿には、私のものと同じコードがありませんでした。それで、誰かが私の問題について私を助けることができますか?
java.lang.IllegalMonitorStateException
スタックトレースは次のとおりです。
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at prj.McWThread.ReadPacket(McWThread.java:40)
at prj.McWThread.run(McWThread.java:73)
この例外を発生させるコードの部分は次のとおりです。
public void run()
{
try{
while (true)
{
this.MyPkt = ReadPacket();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(MyPkt);
}
}
}
Readpacketメソッド:
public MyPacket ReadPacket()
{
MyPacket m = new MyPacket();
System.out.println("ReadPacket");
try {
while (Buff.isEmpty()) {
wait();
}
}
catch (InterruptedException ie) {
ie.printStackTrace();
}
if (! Buff.isEmpty()) {
m = (MyPacket) Buff.remove(0);
return m;
} else {
return m;
}
}