JVM启动CPU会为其分配内存,JVM占用一个进程。
线程的目的:最大可能的利用CPU资源。
线程与线程对象的区别:线程对象是产生线程的对象,线程对象是JVM产生的一个普通的Object对象;
                     线程是CPU分配给这个对象的一个执行过程。

知道了线程对象与线程的区别,那么我们再来思考一个小问题:
     我们都知道java中创建线程对象有两种方式:(1)继承Thread类和(2)实现Runnable接口
     我们还知道(2)比(1)好。简单的原因友有两个:1.用(2)能够弥补Java中单继承缺陷,2.用(2)能够实现资源共享。
那么问题是:为什么我们能够这么大胆儿滴say:能够实现资源共享呢,个人简单浅显的认为是:线程并不是线程对象, 而是CPU分配给这个线程对象的一个执行过程。
下面看一个小例子:
public class TestThreadRunable {

    public static void main(String args[]) {
        //不能够实现i的资源共享,打印10个1。
     for(int j=0 ;j<10; j++) { //因为此处相当于产生了10个线程对象,而每个线程对象又去执行了一次线程
         new TestThread().start();
     }
    
     //能够实现i的资源共享,打印12345678910
     TestRunnable test = new TestRunnable();
     for(int j=0; j<10; j++) { //因为这里只对一个线程对象进行十次执行线程
         new Thread(test).start();
     }
    }
}

class TestThread extends Thread {
   
    int i = 0;
    @Override
    public void run() {
            System.out.println(++i);
    }
}

class TestRunnable implements Runnable {

    int i = 0;
    @Override
    public void run() {
            System.out.println(++i+"--Runnable--");
    }
}