首先,Java 中Thread 和 Runnable是实现并发线程的两种方式!!!,
通过两者中的任意一个都可以达到线程并发的目的!!!

区别
  • Thread 是一個 Class,Runnable 是一個 interface!!!
  • 通过extends Thread,可获得start(), sleep(), 并覆盖run(), 使用时直接用start(),但有时不太方便通过继承(extends)而进行多线程,例如已继承了其它Class(Java 不允许多重继承)时,就应该实现(implements) Runnable写多线程程序。
  • 注意,implements Runnable创建的只有run()方法而没有start(),因此要利用其它机制来启动。这要创建两个对象,
    • 第一个是Runnable的,
    • 第二个是Thread的,然后把第一个当成参数传给第二个!!!
  • 由下面的程序可以看出,实现Runnable的多线程程序要比,继承Thread的多线程程序灵活的多!!!
  • 这里还有一点,就是说使用Runnable实现多线程可以达到资源共享目的,让多个Thread对象接收同一个Runnable实现类的参数,这样就是多个线程操作同一块资源!!!