首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待同一锁的16个线程

等待同一锁的16个线程
EN

Stack Overflow用户
提问于 2018-04-27 03:40:49
回答 1查看 1.4K关注 0票数 0

我在glassfish 3服务器上遇到了问题。日志正在抛出消息

java.util.concurrent.RejectedExecutionException:线程池的任务队列已满,限制: 256

我做了几个线程转储,发现有16个线程在等待同一个锁,例如:

“__ejb- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) - nid=0x1c08”守护进程线程池等待条件0x3297f000 java.lang.Thread.State:正在等待(暂留) at sun.misc.Unsafe.park(本地方法)-暂留以等待池(位于java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at java.util.concurrent.LinkedBlockingQueue.take(的java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)处的java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724)

锁定的可拥有同步器:-无

“__ejb- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) - nid=0x1a3c 2”守护进程线程池等待条件0x3ad3f000 java.lang.Thread.State: WAITING ( parking ) at sun.misc.Unsafe.park(本地方法)-parking to wait <0x117b2cb0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at java.util.concurrent.LinkedBlockingQueue.take( )java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724)

已锁定的可拥有同步器:-无...

这是正常的吗?我以为我会在线程转储中找到拥有锁的线程,但没有。请帮帮忙。我是线程分析的新手。

EN

回答 1

Stack Overflow用户

发布于 2018-04-27 05:02:17

如果某个executor服务有16个theads什么也不做,那么它们都在等待任务队列中显示的东西是完全正常的。

被拒绝的执行可能发生在与创建线程快照时不同的时刻。这只意味着提交数量激增,队列更早出现了溢出。

不过要小心,这些被拒绝的执行可能甚至不在您正在查看的executor服务上。这取决于其他地方还有多少其他的executor服务。

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

https://stackoverflow.com/questions/50050751

复制
相关文章

相似问题

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