Executor、ExecutorService和Executors
A:Executor是一个抽象层面的核心接口,将任务的提交过程和执行过程解耦。
B:ExecutorService对executor接口进行了扩展,添加了一些用于生命周期管理的方法,如返回future对象,终止、关闭线程池等方法。
A与B的区别:
1、B是A的子接口
2、A定义execute()方法来接收Runnable接口的对象,
B中的submit方法可以接受runnable接口和callable接口的对象
3、execute方法不返回任何结果,
submit方法可以通过future对象返回运算结果
4、B提供了管理线程池的方法
Executors是一个工具类,提供工厂方法来创建不同类型的线程池
如何正确的停止一个线程:
- Thread.stop或Thread.susupend(已废弃)
- 使用interupt()方法
- 使用条件变量
具体见:
进程与线程的区别
- 线程是进程的子集,一个进程可以有多个线程,每条线程并行执行不同的任务
- 不同的进程拥有不同的内存空间,而所有的线程共享同一块内存空间
- 每个线程都有单独的栈内存来存储本地数据
- 线程是操作系统能够进行运算调度的最小单位,它被包含在进程中,是进程的实际运作单位