java - 当我在Java11中使用parallelStream时,为什么以及何时触发“线程限制超过替换阻塞的工作人员”
问题描述
我有一个运行了很长时间的 java11 应用程序,最近我发现这种情况每天都在发生
java.util.concurrent.RejectedExecutionException:线程限制超出替换阻塞的工作人员
我知道我不应该在其中放置太多阻塞操作,parallelStream
但我应该尽我所能加速上面的代码,以便我尽快响应我的请求。
IntStream.range(0, nums).parallel().forEach((x) -> {
IntStream.range(0, nums2).parallel().forEach((y) -> {
IntStream.range(0, 20).parallel().forEach((z) -> {
// do some business logic which use jni and cost cpu much ,mean rtt is about 400ms and sometimes upper99 could reach 10s.
});
});
});
解决方案
推荐阅读
- c# - System.IO.IOException:'该进程无法访问该文件,因为它正在被另一个进程使用。?
- java - Concat Publishers 与 Reractor 但处理元素不同
- javascript - 显示与 JSON 数据的“开放时间”日期/时间对齐的 div
- ios - Firebase Live Database Listener 首次读取/更新的区别?
- selenium - 在 colab for selenium 中安装和运行浏览器
- azure - Azure Api 管理重写 URL
- django - 夹层框架博客类别对象在模板上显示
- graph-databases - 如何管理 Gentics Mesh 中节点的状态?
- php - 当我上传多个图像并循环抛出它们时,foreach 循环仅获得第一个值
- django - 我应该在全球范围内安装 virtualenvwrapper 吗?