创建线程是一个重量级操作

创建对象,仅仅是在 JVM 的堆里分配一块内存而已;而创建一个线程,却需要调用操作系统内核的 API,然后操作系统要为线程分配一系列的资源

使用注意

  1. 强烈建议使用有界队列。
  2. 实际工作中,自定义的拒绝策略往往和降级策略配合使用。
  3. 不同的业务使用不同的线程池
  4. 记得处理异常

课后思考

给线程池里的线程指定名字
image.png

有界队列虽然避免了OOM 但是如果请求量太大,我又不想丢弃和异常的情况下一般怎么实践呢?
放数据库,放mq,redis,本地文件都可以