多线程/线程池的使用

注意事项:

1、当需要使用异步线程时,哪怕只需要一个线程,都必须使用线程池获取;因为线程池可以减少 JVM 对线程的创建和销毁

2、线程池在使用过程中,有几个重要的参数比较重要

a、最大线程数:当需要处理的任务过多,最大线程数过大,会造成线程轮换 CPU 频繁,效率降低;同时也会造成 OOM 溢出

b、使用无边队列:当需要处理的任务过多,会造成 OOM 溢出

c、使用有边队列:当需要处理的任务过多,会造成任务丢失

d、当需要使用线程池处理大量任务/消息,尽量保证线程池所在服务的责任单一性,多部署服务节点,避免拒绝策略的触发;比如:一个线程池最大线程数是 50,最多可以同时处理 50 条数据,当服务节点变成 10 个节点,那么做多可以同时处理 500 条数据

3、核心业务是否可以异步/多线程处理

需求:up 在工作中,遇到一个使用OSS空间的

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java八股文+场景题 文章被收录于专栏

针对Java简历中项目的功能进行提问,大家可以在评论区中解答/讨论;同时提供八股文

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务