我有一个类a继承Thread类,在另一个类b的方法里创建a的对象, 然后a.start();,每次进b的这个方法里都要起动一个线程,  我想让这些线程 排对 ,一个执行完了再执行下一个,同时主线程又不阻塞,请问我应该如何做,谢谢

解决方案 »

  1.   

    對A類線程的執行方法進行同步,可以用A.class作鎖,因為這是它們共同擁有的,唯一的
      

  2.   

    public void g() {
        synchronized (A.class) {
            System.out.println("Inside g()");
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println("Leaving g()");
        }
    }關鍵要不阻塞,就得在兩個不同的線程中工作
      

  3.   

    class a extends Thread {
        public void run() {
            synchronized(this) {
              //可以在这里写处理 
            }
        }
    }class b {
      a  a = new a();
      void startA() {
        a.start();
       }
    }