首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >许多线程都在等待ForkJoinPool

许多线程都在等待ForkJoinPool
EN

Stack Overflow用户
提问于 2018-11-05 18:11:00
回答 1查看 1.2K关注 0票数 1

我的java应用程序停止工作了。在查看堆栈转储时,我发现有28个线程正在等待特定的线程。我在应用程序启动时使用newSingleThreadScheduledExecutor,在应用程序关闭时停止它。

我不确定如何从这里开始。这是问题的根本原因,还是我遗漏了什么?

"ForkJoinPool.commonPool-worker-29" #1326 daemon prio=5 os_prio=0 tid=0x00007ff8d8054000 nid=0x2644 waiting on condition [0x00007ff87154a000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)

来自堆栈转储的Grep结果

代码语言:javascript
复制
- parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
    - parking to wait for  <0x00000000804e10c8> (a java.util.concurrent.ForkJoinPool)
EN

回答 1

Stack Overflow用户

发布于 2018-11-05 18:34:49

并行流操作使用ForkJoinPool。您应该修改在流上使用parallel()调用的方式(并且-可能-重新考虑它,因为等待意味着阻塞或同步,两者都不应该在并行流中使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53152244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档