黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: 邱成    时间: 2012-9-28 23:58
标题: 线程问题
本帖最后由 邱成 于 2012-9-29 07:32 编辑

class MyThread implements Runnable{ // 实现Runnable接口
public void run(){ // 覆写run()方法
  for(int i=0;i<3;i++){
   System.out.println(Thread.currentThread().getName()
     + "运行,i = " + i) ; // 取得当前线程的名字
  }
}
};
public class CurrentThreadDemo{
public static void main(String args[]){
  MyThread mt = new MyThread() ; // 实例化Runnable子类对象
  new Thread(mt,"线程").start() ;  // 启动线程
  mt.run() ; // 直接调用run()方法
}
};

mt.run() 不是只是普通的对象调用方法么,怎么又是主线程,怎么回事
作者: 王玉岩    时间: 2012-9-29 00:03
public class CurrentThreadDemo{
public static void main(String args[]){
  MyThread mt = new MyThread() ; // 实例化Runnable子类对象
  new Thread(mt,"线程").start() ;  // 启动线程
  mt.run() ; // //如果你仅仅是按照对象调用方法的话,那么应该把它理解为一个单线程,单线程的话自然就是在main线程当中了
}
};

作者: 叶征东    时间: 2012-9-29 00:45

作者: 孙含庆    时间: 2012-9-29 01:00
class MyThread implements Runnable{ // 实现Runnable接口
public void run(){ // 覆写run()方法
   for(int i=0;i<3;i++){
    System.out.println(Thread.currentThread().getName()
      + "运行,i = " + i) ; // 取得当前线程的名字
   }
}
};
public class CurrentThreadDemo{
public static void main(String args[]){
   MyThread mt = new MyThread() ; // 实例化Runnable子类对象
   new Thread(mt,"线程").start() ;  //该处的start 方法默认会执行 run 方法的代码,已经启动了一个新的线程去运行。

   mt.run() ; // 这是在显示的调用MyThread对象的run方法,不是启动新线程,而是主线程在执行该代码。
}
};
作者: 李润根    时间: 2012-9-29 01:09
start()方法就是创建一个线程并且执行run()方法中的代码

mt.run()是直接调用方法,并没有创建线程




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2