wait和notify是所有对象所具有的方法,可以用来做消息通知的,而suspend\resumer是线程自己的方法(已不赞成使用了),当调用了wait方法后,当前线程就会被挂起,直到其他线程调用了该对象的notify方法。suspend是挂起当前线程,resumer是恢复当前线程地执行。

解决方案 »

  1.   

    class A extends Thread{
     private object obj; public A(Object obj){
      this.obj = obj;
     } public void run(){
      synchronized (obj){ 
        ...
        obj.wait();        //该线程将会被挂起,直到其他线程调用notify()
        ...
      }
     }
    }class B extends Thread{
     private object obj; public A(Object obj){
      this.obj = obj;
     } public void run(){
      synchronized (obj){
        ... 
        obj.notify();        //唤醒调用了该wait的线程。
        ...
      }
     }public static void main(String[] args){
     Object obj = new Object();
     A a = new A(obj);
     B b = new B(obj);
     a.start();
     b.start();
    }你自己加入一点调试语句,就知道到底发生了什么事情了。