不是脑子进水了,是没动脑子就copy,paste了

解决方案 »

  1.   

    您在哪里看到的呢?我看到的都是要捕获异常啊,而且wait还要用sychronized进行同步监视的。
      

  2.   

    以API和自己实际写的代码为准啊不抛异常编译通不过吧
      

  3.   

    关键的区别是,sleep时,依然抱着锁睡觉!wait时,挂起,进入对象锁的等待线程池中,等待notify或者notifyAll方法的唤醒。这个时候,他舍身取义,忍痛割爱,把锁让给了他人,大无畏的精神让我们感动。都是有异常的,因为这都属于阻塞式的方法,被打断的话,肯定不爽,不爽就要抛异常。懂了么?鄙视那些胡乱copy的大傻逼!
      

  4.   


    wait后在等待池阻塞,被其它线程通知后进入对象的锁池阻塞。应该是这样吧~
      

  5.   


    wait后在等待池阻塞,被其它线程通知后进入对象的锁池阻塞。应该是这样吧~
    然后呢,等唤醒它的那个线程释放出对象锁后,在锁池阻塞的线程会进入Runnable(可运行)状态,与其它可运行状态的线程一起竞争CPU资源。
      

  6.   


    wait后在等待池阻塞,被其它线程通知后进入对象的锁池阻塞。应该是这样吧~
    然后呢,等唤醒它的那个线程释放出对象锁后,在锁池阻塞的线程会进入Runnable(可运行)状态,与其它可运行状态的线程一起竞争CPU资源。
    惭愧了,确实有点错误。正确的流程应该是,调用wait方法后,进入阻塞对象的等待池等待。
    当有notify,notifyAll方法在此对象上调用时,阻塞线程会从阻塞对象的等待池到锁池等待获取锁并进入到可运行状态(Runnable)。对我的错误表示歉意。