คำถามติดแท็ก thread-dump

20
วิธีรับเธรดและฮีปของกระบวนการ Java บน Windows ที่ไม่ได้ทำงานในคอนโซล
ฉันมีแอปพลิเคชัน Java ที่ฉันเรียกใช้จากคอนโซลซึ่งจะดำเนินการกับกระบวนการ Java อื่น ฉันต้องการรับเธรด / กองฮีปของกระบวนการย่อยนั้น ใน Unix ฉันสามารถทำได้kill -3 <pid>แต่ใน Windows AFAIK วิธีเดียวที่จะได้รับการถ่ายโอนข้อมูลเธรดคือ Ctrl-Break ในคอนโซล แต่นั่นทำให้ฉันถ่ายโอนข้อมูลของกระบวนการหลักไม่ใช่ลูก มีวิธีอื่นในการรับการถ่ายโอนข้อมูลฮีปนั้นหรือไม่

2
วิธีวิเคราะห์การถ่ายโอนข้อมูลเธรด java
ฉันพยายามทำความเข้าใจเพิ่มเติมเกี่ยวกับ java โดยเฉพาะเกี่ยวกับการจัดการหน่วยความจำและเธรด ด้วยเหตุนี้ฉันเพิ่งพบความสนใจในการดูที่ทิ้งเธรด นี่คือไม่กี่บรรทัดที่นำมาจากเว็บแอปโดยใช้ VisualVM ซึ่งเป็นเครื่องมือในตัวสำหรับ java: "Finalizer" daemon prio=8 tid=0x02b3d000 nid=0x898 in Object.wait() [0x02d0f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x27ef0288> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x27ef0288> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) Locked ownable synchronizers: - None "Reference Handler" daemon prio=10 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.