是不是要实现每个线程的具体操作, 就需要重新定义run(), 也就是说创建了新的线程后,它的所有操作都在run()方法中.
也就是说新线程想要干什么,必须在run()定义, 用start()启动线程后, run()中所定义的就会被执行??很迷茫,望大家帮帮忙, 帮我解释一下!多谢!

解决方案 »

  1.   

    run()方法中定义了线程的操作和功能,用start()启动线程后,线程处于就绪状态.当它获得处理器分配的CPU时间片,便进入执行状态,既调用run()方法顺次执行.
      

  2.   

    楼主你自己说的完全是正确的,我猜想一下(不一定正确哦)你想问的是是:好几个线程做不同的事对吗?如果确实是这样,你就必须定义多个线程类。举例来说public class Tasks{
      public void taskA() throws Exception{
        Thread.sleep(10000); // wait for 10 seconds
      }  public void taskB() throws Exception{
        Thread.sleep(10000);
      }
    }taskA和taskB这两个函数都需要运行10秒钟,你如果想然这两个函数同时运行的话就必须把它们分别放在两个线程里:public class TaskAThread extends Thread{
      private Tasks tasks;
      
      public TaskAThread(Tasks tasks){
        this.tasks = tasks;
      }  public void run(){
        tasks.taskA();    
      }
    }public class TaskBThread extends Thread{
      private Tasks tasks;
      
      public TaskBThread(Tasks tasks){
        this.tasks = tasks;
      }  public void run(){
        tasks.taskB();    
      }
    }
    public class Main{
      public static void main(String[] args){
        Tasks tasks = new Tasks();
        TaskAThread ta = new TaskAThread(tasks);
        TaskBThread tb = new TaskBThread(tasks);
        ta.start();
        tb.start();
      }
    }