黑马程序员技术交流社区

标题: 线程中run方法与start方法的区别。 [打印本页]

作者: Always,    时间: 2015-6-1 16:12
标题: 线程中run方法与start方法的区别。
黑马程序员-学习日志(八)-Java中线程的start方法和run方法的区别 (2015-05-20 11:20:36)[编辑][删除]转载▼
标签: 佛学       
package org.linuxsogood.misc;
public class TestMutiThread {
public static void main(String[] args) {
  new Thread(new Runnable() {
   @Override
   public void run() {
    for (int i = 0; i < 20; i++) {
     System.out.println(i+"hello.");
     try {
      Thread.sleep(1000);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
    }
   }
  }).run();
  new Thread(new Runnable() {
   
   @Override
   public void run() {
    for (int i = 0; i < 20; i++) {
     System.out.println(i+"test.");
     try {
      Thread.sleep(1000);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
    }
   }
  }).run();
  System.out.println("test end");
}
}
当一个线程启动的时候,它的状态被调为了0,如果不是0的话会抛异常出来.然后把这个线程加入到了线程组.最后尝试调用start0方法,而start0方法是私有的,私有的一般是使用C语言写的.看来要调用系统底层,还是要通过C.Java中的多线程,其实底层是使用C代码来实现的.这也就是为什么调用线程中的start方法可以实现多线程的效果.而如果调用run方法的话,其实调用的就是自己写的那个runnable里,自己实现的那个run方法.





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