public static void main(String[] args) throws IOException {
        Server server = new Server( args );
        try {
            server.start();
            System.out.println("Server started.  Press <Ctrl-C> to stop.");
            synchronized( server ) {
                server.wait();
            }
        } catch (InterruptedException e) {
            log.log( Level.INFO, "Server Interupted." );
        }
    }这段代码里synchronized和wait的作用是什么呢?

解决方案 »

  1.   

    synchronized 同一时刻只有一个线程能够进入该段代码
    wait 该线程进入等待状态,直到被其他线程唤醒
      

  2.   

    synchronized( server ) 抢对象锁。
    server.wait() 抢到了则等待。
    有啥用意?
      

  3.   

    如果没线程唤醒,那Ctrl+C之后就抛出InterruptedException异常?
      

  4.   

    不是吧。wait是等待其他线程执行完毕之后再执行此线程, sleep才是被其他线程notify时继续执行吧。
      

  5.   


    你说错了,sleep睡眠time后自动唤醒,wait需要notify唤醒
      

  6.   

    http://www.blogjava.net/hk2000c/archive/2007/12/19/168761.html 看看