synchronized(object) {object.wait()}
' ' を使用して、オブジェクトの準備ができるまでサーバーを一時停止しようとしています。そしてsynchronized(object) {object.notify() }
、オブジェクト値を設定するクラスで ' ' を呼び出しました。しかし、サーバーが の後に起動しないようwait()
です。
public class MyServer {
...
do {
try {
message = (String) in.readObject();
System.out.println("server receive>" + message);
synchronized (myServerSend) {
myServerSend.wait();
}
System.out.println("Am I wake up???"); //this never print out
sendMessage(myServerSend);
} catch (ClassNotFoundException classnot) {
System.err.println("Data received in unknown format");
}
} while (!message.equals("bye"));
} catch (IOException ioException) {
ioException.printStackTrace();
}
....
}
オブジェクト値を設定するための私の呼び出しは次のとおりです
public class Action implements MouseInputListener, MouseMotionListener {
....
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e)) {...
}
else {
....
if(MyGame.currentPlayer == MyGame.WHITE) {
myServerSend = "" + chosenPieceIndex + "," + moveLocationIndex;
synchronized (myServerSend) {
myServerSend.notify(); // this seems like fail to wake up myServer
}
System.out.println(myServerSend);
}
myServerSend を public static 文字列型として宣言すると問題になりますか? 誰でもそれを手伝ってもらえますか?前もって感謝します!