parallelStream()使用注意点

parallelStream()使用中的注意点:

1、并行流如果使用,最好使用自定义的线程池,避免使用默认的线程池,以免千万阻塞或者资源竞争等问题。

2、parallelStream适用的场景是CPU密集型的,假如本身电脑CPU的负载很大,那还到处用并行流就无法起到作用,切记不要再parallelStream操作中使用IO流

3、不要在多线程中使用parallelStream,因为大家都在抢占CPU,是不会提升效果,反而可能加大线程之间切换上下文的开销。

Runtime.getRuntime.availableProcessors()是JDK提供的获取当前系统的可能核心数,而现在多数应用是发布在容器中的,虽然部署的容器是2C4G的,但是ForkJoinPool创建的FokJoinPool可能会创建出几十个线程,因为程序部署在docker容器中,那么获取的是宿主机的CPU核心数。

容器明明分配的是2C,为什么java获取的会是物理机的核心数呢?怎么解决这个问题呢?

1、使用JDKu131以上的版本

2、使用自编译源代码的方式

相关推荐
HyperAI超神经1 分钟前
【TVM教程】设计与架构
人工智能·rpc·gru·tvm
skywalk81632 分钟前
torch的pos[:, group] -= offset.unsqueeze(1) 飞桨api怎样实现?
人工智能·paddlepaddle
小陈phd3 分钟前
大语言模型实战(八)——MCP(Model Context Protocol):AI 与外部世界交互的标准化协议
人工智能·语言模型·自然语言处理
大模型真好玩4 分钟前
LangGraph智能体开发设计模式(二)——协调器-工作者模式、评估器-优化器模式
人工智能·langchain·agent
mubei-1234 分钟前
FiD:利用具有生成模型的段落检索进行开放域问答
人工智能·llm·rag·检索增强生成
说私域7 分钟前
基于电商平台直播板块的智能名片链动2+1模式商城小程序应用研究
人工智能·微信·小程序·开源
Java后端的Ai之路7 分钟前
【神经网络基础】-梯度消失问题
人工智能·深度学习·神经网络·梯度消失
一招定胜负9 分钟前
卷积神经网络CNN
人工智能·神经网络·cnn
Java后端的Ai之路10 分钟前
【神经网络基础】-一个完整的神经网络学习过程是怎样的?
人工智能·深度学习·神经网络·学习·激活函数