تعريف JSTACK:
JSTACK هي أداة تتبع المكدس تأتي مع أجهزة Java Virtual.
مقدمة أساسية:
يتم استخدام JSTACK لإنشاء لقطة مؤشر ترابط للوقت الحالي للجهاز الافتراضي Java. لقطات الخيط هي مجموعة من مداخن الأسلوب التي يقوم بها كل مؤشر ترابط في جهاز Java Virtual الحالي. الغرض الرئيسي من توليد لقطات الخيوط هو تحديد أسباب توقف مؤقتات طويلة الأجل للخيوط ، مثل الجمود بين المواضيع والحلقات الميتة والانتظار على المدى الطويل الناجم عن طلب الموارد الخارجية.
عندما يتوقف مؤشر ترابط ، يمكنك التحقق من مكدس المكالمات لكل مؤشر ترابط من خلال JSTACK ، ويمكنك معرفة ما يفعله الخيط غير المستجيب في الخلفية أو الموارد التي تنتظرها.
تنسيق الأوامر:
JSTACK [الخيار] PID
المعلمات الأساسية:
-F قوة طباعة معلومات مكدس عندما يكون "JSTACK [-L] PID" لا يتوافق مع
قائمة طويلة. اطبع معلومات إضافية حول القفل ، مثل قائمة Synchronizer القابلة للتمويل التي تنتمي إلى java.util.concurrent.
-M طباعة جميع معلومات المكدس من Java وأطر C/C ++ الأصلية. -ه | -معلومات مساعدة طباعة help
معرف عملية PID Java الذي يحتاج إلى طباعة معلومات التكوين ، يمكنك استخدام أداة JPS للاستعلام
قضية
C:/المستخدمين/المسؤول> JSTACK 5516Full Thread Dump Java Hotspot (TM) 64-bit Server VM (24.79-B02 MIMED MODE): "thread -1" prio = 6 tid = 0x000000000000cb13800 nid = 0x19ac في انتظار إدخال الشاشة [0x000000000000d67f000] java.lang.thread.state java.lang.string) - Locked <0x00000007d5a9beb8> (a java.lang.string) في java.lang.thread.run (مصدر غير معروف) "Thread -0 prio = 6 tid = 0x000000000cb0e800 nid = 0x6bc انتظر مراقبة الإدخال [0x00000000000] java.lang.thread.state: محظور (على مراقبة الكائن) في thread.deadlockdemo $ 1.run (deadlockdemo.java:21) - في انتظار قفل <0x00000007d5a9beb8> (a java.lang.string) - locked <0x000007d5a9be88> java.lang.thread.run (مصدر غير معروف)
يتم تشغيل رمز Deadlock هنا ، مما تسبب في انتظار كلا الموضوعين في البرنامج حتى يتم إطلاق الطرف الآخر من القفل ، مما تسبب في طريق مسدود للبرنامج.
من هذا الرمز ، يمكن رؤيته بوضوح أن السطر 35 والخط 21 في DeadlockDemo.class محظورون ، ثم نحتاج إلى تحسين هذه الوظيفة.
ملاحظة: في العملية الفعلية ، غالبًا ما لا تكون معلومات التفريغ كافية لتأكيد المشكلة. يوصى بإنشاء ثلاثة معلومات تفريغ. إذا كان كل تفريغ يشير إلى نفس المشكلة ، فسوف نحدد نموذج المشكلة.
لخص
ما ورد أعلاه هو كل شيء عن تحليل مثيلات تفريغ JSTACK وخيط في هذه المقالة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!