Thread 和 Runnable 区别?

创建线程的方式有几种?

JDK 8 Thread.java 第73行明确指出,有两种 方式!!!

一种方法是:

class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

另一种方法是:

class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

 

Thread 和 Runnable 的区别?

Thread : 对线程的抽象

                 Thread 也是实现的Runnable接口,并不具备线程功能,需要实例化类来启动线程,已经实例化的资源不能共享,                         Thread要资源共享,只能声明变量为static

Runnable:对任务(业务逻辑)的抽象

                   可以实现资源分享