黑马程序员技术交流社区

标题: 关于线程 [打印本页]

作者: ۩大世界小人物    时间: 2014-5-14 19:00
标题: 关于线程
本帖最后由 ۩大世界小人物 于 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()方法有什么区别。。。   


作者: Shimano    时间: 2014-5-14 20:28
  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 的子类应该重写该方法。
*/






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