class A
{
    public aa()
    {
        bb();
        .....
        .....
    }
}class B
{
    public bb()
    {
    }
}
我在执行aa()时怎样让bb()转到另外一个线程中执行,而不是先执行完了bb()中的代码,在执行aa()中的。就好像是让aa()和bb()同时执行,而不是一个先一个 后??

解决方案 »

  1.   

    你写一个类继承Thread,然后在bb()方法中调用 start(),不就可以了!
      

  2.   

    class B implements Runnable{
        public void bb(){
            System.out.println("----bb()正在执行--------");
        }
        public void run(){
          while(true){
            bb();
          }
        }
      }
    -------------------------------------------------------------------------------
    class A{
        Thread th=new Thread(new B());
        public  void aa(){
          th.start();
          while(true){
            System.out.println("---------aa()正在执行----------");
          }
        }
        
        public static void main(String args[]){
          A a=new A();
          a.aa();
        }
      }
    ----------------------------------------------------------执行结果------
    ----bb()正在执行--------
    ----bb()正在执行--------
    ----bb()正在执行--------
    ----bb()正在执行--------
    ---------aa()正在执行----------
    ----bb()正在执行--------
    ---------aa()正在执行----------
    ----bb()正在执行--------
    ---------aa()正在执行----------
    ----bb()正在执行--------
    ---------aa()正在执行----------
    ----bb()正在执行--------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
    ---------aa()正在执行----------
      

  3.   

    class A
    {
        public aa()
        {
            new Thread() {
                public void run(){
                    new B().bb();  // 此句在新线程中创建 B 对象,并执行它的 bb()
                }
            }.start();  // 此句创建一个线程,并启动它
            .....
            .....
        }
    }class B
    {
        public bb()
        {
        }
    }
      

  4.   

    是不是应该: 
    new Thread() {
                public void run({
                    new B().bb();  // 此句在新线程中创建 B 对象,并执行它的 bb()
                }
            }).start();  // 此句创建一个线程,并启动它
      

  5.   

    对不起改错了,是不是应该为: 
    new Thread({
                public void run(){
                    new B().bb();  // 此句在新线程中创建 B 对象,并执行它的 bb()
                }
            }).start();  // 此句创建一个线程,并启动它
      

  6.   

    最好是用接口来写更清析一点
    new Thread(new Runnable(){
    public void run(){
    new B().bb();
    }}).start();
    这样就可以了,用一个Runnable接口去构造一个线程对象