谢谢

解决方案 »

  1.   

    start()方法是启动(即开辟)一个线程的方法,因此线程的启动必须通过此方法,
    而run()方法,只是Thread类的一个方法,它本身并不能开辟线程。
    所以,当你用run()时候,程序只有一个线程,根本没达到你多线程的目的(是错误的)。而你用start()时候,你的程序又开辟了两个线程,所以结果不同
     
      

  2.   

    我认为没有什么区别
    start() :使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
      

  3.   

    start()方法是告诉线程可以运行了,如果有多个线程在线程池里面,具体是那个线程运行是不一定的。
    run()是当线程运行时,需要实现的功能。
      

  4.   

    错了,一句话:start 启动新线程并在新线程中运行 run 中代码,而直接调用 run 方法只会在当前线程中完成简单的方法调用。
      

  5.   

    准确地说 start 方法的作用是使线程切换到可运行状态,新线程一般不会 start 后马上就到 CPU 上去运行,当然双U或双核除外。
      

  6.   

    start()相当于开个线程,run()就相当与于调用成员方法,和调用其他在类中定义的方法一样
      

  7.   

    start 新线程
    run   本线程运行方法
      

  8.   

    继承Runable 或 Thread接口
    都要重写他的run()方法,里面放的是线程里面要实现的功能,就是执行线程的代码。
    start()是你在必要的时间开启你的线程。
      

  9.   

    start方法是线程启动,而直接调用run方法只是方法调用,不会启动一个线程
      

  10.   

    start():是jvm在java进程中开启一个线程,这时异步的。
    run():就和直接调用其他java方法一样没有区别,依然是同步的。
      

  11.   

    start()是开始线程;直接run(),不是平常单线程的用法吗?你觉得会达到多线程的效果不