sleep()是属于Thread类的方法,wait()、notify()和notifyAll()是根object的方法,它们所操控的是每个对象都会有的锁, 线程调用了wait()之后,会一直等下去,直到有别的线程调用了这个对象notify()或notifyAll()。
你只能在synchronized方法或synchronized段里调用wait(),notify(),notifyAll(),否则程序运行时会抛出IllegalMonitorStateException。这个异常带着一个挺让人费解的“current thread not owner”消息。这个消息的意思是,如果线程调用对象的wait(),notify(),notifyAll(),必须先拥有这个对象的锁。调用notify()、notifyAll()方法后,被唤醒的唯一一个线程执行的第一条语句,是紧跟在wait()方法后面的语句。
使用线程同步就行了,而且必须这么做[/color] |