1.进程与线程的关系
进程:进程是指当一个程序进入内存运行时,即变成一个进程,进程时处于运行过程中的程序,并且具有一定的独立功能。
线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。
我认为这两者的关系可以拟人化理解,比如说 人在走是一个进程,因为人在进行 走 这个行为,在此时双腿的交替迈步,
手臂摆动保持平衡以及眼睛看路这三个可以看作是 人在走 的三个线程。
2.多线程两种实现方式
方式一:1.定义一个类继承Thread 2.在该类中重写run方法 3.创建子类对象就等于创建了线程对象 4.调用start方法开启线程
方式二:1.定义一个类实现接口Runnable 2.覆盖接口中的run方法 3.创建Thread类对象 4.将Runnable接口的子类对象作为参
数传递给Thread类的构造函数 5.调用Thread类的start方法开启线程
3.多线程两种实现方式的区别
实现Runnable接口避免了单继承的局限性,所以较为常用。实现Runnable接口的方式,更加的符合面向对象,线程分为两部分,一部分线程对象,一部分线程任务。
继承Thread类,线程对象和线程任务耦合在一起。一旦创建Thread类的子类对象,既是线程对象,有又有线程任务。实现runnable接口,将线程任务单独分离出来封装成对象,类型就是Runnable接口类型。
Runnable接口对线程对象和线程任务进行解耦。
4.线程池的原理
相当于创建了一个多线程的容器,里面的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程消耗过多资源。