JBoss,数千个线程处于等待状态,这正常吗?

JBoss,数千个线程处于等待状态,这正常吗?,jboss,jboss5.x,Jboss,Jboss5.x,我正在用javabuild 1.6.0_27-b07在Solaris 10 SPARC上运行JBoss 5.0.0 当我使用ps-eLf | grep-c'xs256k'检查时(我使用java命令行argxs256k来最小化线程大小),我看到了8000个线程(并且正在计数) 线程转储还显示了处于等待状态的lof进程,这正常吗 这里是线程转储的一个摘录(我有上千个这样的线程) Thread:pool-159-Thread-10:优先级:5,demon:false,threadId:2231,thr

我正在用java
build 1.6.0_27-b07
Solaris 10 SPARC
上运行
JBoss 5.0.0

当我使用
ps-eLf | grep-c'xs256k'
检查时(我使用java命令行arg
xs256k
来最小化线程大小),我看到了8000个线程(并且正在计数)

线程转储还显示了处于等待状态的lof进程,这正常吗

这里是线程转储的一个摘录(我有上千个这样的线程)

Thread:pool-159-Thread-10:优先级:5,demon:false,threadId:2231,threadState:WAITING
-等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
sun.misc.Unsafe.park(本机方法)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
run(Thread.java:662)

线程的名称(
pool-159-thread-10
)表明JVM创建了159个线程池,当前线程池至少包含10个线程。不-这不正常,通常应用程序/服务器不会产生那么多的
ExecutorService
s…@TomaszNurkiewicz现在我看到
pool-229-thread-25
。。。隐马尔可夫模型。。我不记得我设置了那么多游泳池。。。我要四处挖掘。。
        Thread: pool-159-thread-10 : priority:5, demon:false, threadId:2231, threadState:WAITING

            - waiting on <0x169635f> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
            sun.misc.Unsafe.park(Native Method)
            java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
            java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
            java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
            java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
            java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
            java.lang.Thread.run(Thread.java:662)