线程

94 阅读1分钟

1. 创建线程的方法

- 继承thread
- 实现runnable借口
- 实现callable接口和futuretask

2.线程池

线程池创建

- Executors.newFixedTreadPool
- Executors.newsingleTreadPool
- Executors.newCacheTreadPool
- Executors.newScheduledTreadPool

不建议用Executors创建线程容易内存溢出oom,推荐使用new TreadPoolExecutor(参数) 参数包括:

- 核心线程数
- 最大线程数
- 救急线程存活时间
- 救急线程时间单位
- 阻塞队列
- 线程工厂:可以为线程起名字
- 应急处理

当任务提交到线程池后会创建一个线程,当创建数量达到核心线程数后开始产生救急线程,线程总数达到最大线程数后额,把后面提交的加入到阻塞队列,当阻塞队列数量达到队列设定的容量后会触发应急处理方法进行处理。当线程数被释放的小于最大线程数的时候,救急线程在救急线程设定的时间内没有被占用就回收掉。