A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-28 23:58  /  1343 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱成 于 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() 不是只是普通的对象调用方法么,怎么又是主线程,怎么回事

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
public class CurrentThreadDemo{
public static void main(String args[]){
  MyThread mt = new MyThread() ; // 实例化Runnable子类对象
  new Thread(mt,"线程").start() ;  // 启动线程
  mt.run() ; // //如果你仅仅是按照对象调用方法的话,那么应该把它理解为一个单线程,单线程的话自然就是在main线程当中了
}
};

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 鼓励图文并茂

查看全部评分

回复 使用道具 举报
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方法,不是启动新线程,而是主线程在执行该代码。
}
};

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
start()方法就是创建一个线程并且执行run()方法中的代码

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

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马