1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
实现call()方法,具有返回值
4.线程池创建
线程池继承关系:
在Executors类中有许多种线程池的静态创建方法
四种常用线程池
newCachedThreadPool(弹性缓存线程池):创建之初里面一个线程都没有,当execute方法或submit方法向线程池提交任务时,会自动新建线程;如果线程池中有空余线程则不会新建;一般可以容纳几万个线程,线程超过60s会被回收
newFixedThreadPool(定长线程池):可以空值线程最大并发数,超出的线程会在队列中等待
newScheduledThreadPool(定长线程池):支持定时及周期性任务执行
newSingleThreadExecutor(单线程化的线程池):只有一个线程,保证任务顺序执行
ExecutorService:是继承Executor接口的接口,execute方法是Executor接口里的