thread dump 代码
Thread-8" id=475 idx=0x2dc tid=1220 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: com/hth/base/util/pool/ThreadPool@0x1071f1590[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at com/hth/base/util/pool/ThreadPool.run(ThreadPool.java:146)
    ^-- Lock released while waiting: com/hth/base/util/pool/ThreadPool@0x1071f1590[fat lock]
    at java/lang/Thread.run(Thread.java:619)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
这段代码是有问题的,还是正常的?Waiting for notification on:,^-- Lock released whilewaiting:是什么意思 ?他们都指向com/hth/base/util/pool/ThreadPool@0x1071f1590[fat lock]。
请指点

解决方案 »

  1.   

    楼主你这帖子发的浪费分数又分散讨论焦点这段代码能有啥问题?没啥问题。线程池没有任务的时候就是等待任务而已,等待过程就是 “Waiting for notification”
    ^-- Lock released whilewaiting
    这个也很正常,当你对某对象进行wait()操作的时候,之前用过synchronized对该对象所获得的独占锁就会释放。
      

  2.   

    我曾经也认为这段代码是没问题的,但是如果真的没问题,我的问题在某些方面就无解了。
    其实还有段代码是Holding lock: java/net/SocksSocketImpl@0x101feed50[thin lock],也曾是怀疑的部分,其它的部分好像没问题啊
      

  3.   

    1楼表达意思不准确,应该说:这个堆栈信息是看不出什么问题的。至于:
    -- Waiting for notification on: com/hth/base/util/pool/ThreadPool@0x1071f1590[fat lock]
    这个ThreadPool的实现是否存在问题,不能从该堆栈信息中看出来。