我正在继续深入理解Java线程的途径。不幸的是,我的Java认证并未涵盖该部分,因此学习的唯一方法是发布一系列愚蠢的问题。有了这么多年的Java开发,我有时想知道我还有多少东西需要学习:-)了解引用处理程序线程
特别是我现在关注引用处理程序线程。
"Reference Handler" daemon prio=10 tid=0x02da3400 nid=0xb98 in Object.wait() [0x0302f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1aac0320> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x1aac0320> (a java.lang.ref.Reference$Lock)
现在的一些问题是下面的,对一些人我知道答案,但我不张贴,因为我想听听别人的意见:
- 什么是指向处理器线程应该这样做?
- 线程转储应该被视为自下而上,为什么堆栈跟踪以锁定开始,至少在线程运行后不应该出现锁定语句?
- “本地方法”是指什么?
- 为什么“未知源”,在这种情况下,线程转储无法调用源代码?
- 最后等待和锁定有相同的,为什么?
像往常一样,我恳请回答所有问题,以便我可以标记回答。
呃...关于第5点,它是有道理的,我们可以说,当一个'等待'的声明出现,然后在堆栈跟踪一个'锁'具有相同的地址总是出现? – Leonardo
好吧,如果你可以解释更多关于问题1,我可以标记整体解决:-) – Leonardo