Thread
Runnable - run function
Jdk - 1.5之后
Callable - 范型 其实就是方法的返回值
阻塞等待
线程池
异步非常多
内存是有限的
业务代码内 - 启动线程的方式都不能用 - 会导致资源耗尽
将所有的多线程异步任务都交给线程池进行 - 资源控制
高并发系统 - 线程池
整个系统一个线线程池 - 池只有一两个
异步任务指的是在后台运行的任务,其执行不会阻塞(即不会挂起等待任务完成)发起它的主程序流程。这意味着你的程序可以启动一个任务,然后在不等待这个任务完成的情况下继续执行其他工作。异步任务通常用于提高程序性能,特别是在执行耗时操作时,如访问网络、进行大量计算、读取大型文件等。
Submit - 可以获取到返回值
和execute - 不可以
区别 - thread 和runnable没有返回值,但callable可以有返回值,只有线程池可以控制资源
创建 - Threadpoolexecutor
顺序
五个空闲线程
核心线程满了 - 放到队列里面 - 如果核心有空闲 - 就去执行
阻塞队列满了 - 开新线程 - 最大的数量 -max
Max都满了 - 拒绝策略
没有满 - 都执行完了 - 有空闲 - 在live time时间内释放掉