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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ۩大世界小人物 中级黑马   /  2014-5-14 19:00  /  1546 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ۩大世界小人物 于 2014-5-15 09:52 编辑

  1. //主函数
  2. public static void main(String[] args)
  3. {
  4.    Th t1 = new Th();
  5.    Th t2 = new Th();
  6.    t1.start();
  7.    t2.start();

  8.    /*
  9.     t1.run();
  10.     t2.run();
  11.   */
  12. }
复制代码

//这是一个线程子类
class Th extends Thread
{
        //重写Thread类的run()方法
        public void run()
        {
                 System.out.println("Th线程打印");
        }
}
我的问题是
一个线程子类对象 调用run()方法和调用start()方法有什么区别。。。   

1 个回复

倒序浏览
  1. class Th extends Thread
  2. {
  3.     //重写Thread类的run()方法
  4.     public void run()
  5.     {
  6.         System.out.println("Th线程打印");
  7.     }
  8. }
  9. class Demo
  10. {
  11.         public static void main(String[] args)//主函数
  12.         {
  13.                 Th t1 = new Th();//创建好一个线程
  14.                 Th t2 = new Th();
  15.                 t1.start();//开启线程,并执行线程的run方法。那个对象调用start,就运行那个对象的run方法中的代码。
  16.                 t2.start();

  17.            /*
  18.                 t1.run();//仅仅是对象调用方法,而线程创建了,并没有运行。
  19.                 t2.run();
  20.           */
  21.         }
  22. }
复制代码
/*
API中两个方法的解释:
start()方法:使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
run()方法:如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
Thread 的子类应该重写该方法。
*/

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