2011-12-16 10 views
12

मैं एक multithread कार्यक्रम के साथ कुछ काम करते हैं। मैं जेकोनसोल में देखता हूं कि मेरे पास अभी भी 2 गैर डिमन थ्रेड हैं लेकिन मुझे पता नहीं चल सकता कि वास्तव में (थ्रेड की कुल संख्या 30 से अधिक है)। विजुअल वीएम ऐसी जानकारी प्रदान नहीं करता है।जावा थ्रेड निगरानी। गैर डेमॉन लाइव थ्रेड कैसे खोजें?

उत्तर

20

रन:

$ jstack PID | grep tid= | grep -v daemon 

यह धागा नाम के साथ एक दिया जावा पीआईडी ​​के सभी धागा, फिल्टर लाइनों डंप और गैर डेमॉन लोगों को फ़िल्टर कर देगा।

केवल -v को डिमन थ्रेड मुद्रित करने के लिए निकालें।

+0

दुर्भाग्य से जीसी धागे की तरह कुछ अजीब धागे छोड़ देता है, लेकिन पर्याप्त बंद हो जाता है! :) – rogerdpack

+0

भावी पाठकों के लिए एक युक्ति: आप अपने जेडीके के बिन फ़ोल्डर –

2

VisualVM में थ्रेड डंप लें। डेमॉन थ्रेड्स में थ्रेड नाम के बगल में 'daemon' शब्द होता है।

"Default RequestProcessor" daemon prio=1 tid=101e58000 nid=0x124d86000 runnable [124d85000] 
+0

में जेस्टैक पा सकते हैं, मैं इसे linux पर visualvm 1.33 में नहीं देख पा रहा हूं। आप किस विंडो का उल्लेख करते हैं? –

संबंधित मुद्दे