我创建了一个简单的邮箱,服务器等待客户端向其发送输入 . 问题是只有一个进程进入此循环,并且当它完成它必须执行的操作时崩溃 . 另一个客户端仅在另一个客户端停止工作时才解锁,而不是像前一个客户端一样崩溃 . 这部分代码声明为 public synchronized void run() 的方法,所以我不明白它是否是信号量的问题 . 我试图在wait()方法之前放一个打印,似乎它永远不会进入那里 . 这是代码:

BufferedReader in;
        String op;
        boolean exit = false;
        try {
            in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
            while (!exit && ((op = in.readLine()) != null)) {
                while (!available) {
                    try {
                        wait();
                    } catch (InterruptedException e) { }
                }
                available = false;
                /* Do something with the op variable */
                available = true;
                notifyAll();
            }

编辑:每次客户端与服务器交互时我得到的错误:

2018-12-10 11:48:31.317 java[1409:65584] unrecognized type is 4294967295
2018-12-10 11:48:31.317 java[1409:65584] *** Assertion failure in -[NSEvent _initWithCGEvent:eventRef:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1671.10.106/AppKit.subproj/NSEvent.m:1969