c++ pthread_create' - كيفية تسمية موضوع في لينكس؟




undefined reference (3)

إذا كنت تستخدم مكتبة مثل ACE فإن مؤشر Thread لديه طريقة لتحديد اسم سلسلة الرسائل عند إنشاء سلسلة رسائل جديدة.

يحتوي BSD Unix أيضًا على استدعاء pthread_set_name_np .

خلاف ذلك يمكنك استخدام prctl كما ذكر Fusspawn.

هذا السؤال لديه بالفعل إجابة هنا:

لدي تطبيق Linux متعدد مؤشرات الترابط مكتوب بلغة C / C ++. لقد اخترت أسماء المواضيع الخاصة بي . للمساعدة في تصحيح الأخطاء ، أود أن تكون هذه الأسماء مرئية في GDB و "top" ، إلخ. هل هذا ممكن ، وإذا كان الأمر كذلك كيف؟

(هناك العديد من الأسباب لمعرفة اسم مؤشر الترابط . الآن أريد أن أعرف أي مؤشر ترابط يشغل 50٪ من وحدة المعالجة المركزية (كما ورد في "أعلى"). وعند تصحيح الأخطاء ، غالبًا ما أحتاج إلى التبديل إلى مؤشر ترابط مختلف - حاليًا يجب أن تفعل " thread apply all bt " ثم ابحث في صفحات إخراج backtrace للعثور على مؤشر الترابط الصحيح).

الحل ويندوز هنا ؛ ما هو لينكس؟


Posix المواضيع؟

من الواضح أن هذا لن يترجم ، لكنه سيعطيك فكرة عن أين تذهب للصيد. لست متأكدًا من أنه الأمر PR_ الصحيح ، لكنني أعتقد أنه كذلك. لقد مر وقت طويل...

  #include <sys/prctl.h>
  prctl(PR_SET_NAME,"<null> terminated string",0,0,0)

إن أفضل تعريف قصير المدى الذي رأيته حتى الآن يأتي من "واجهة برمجة لينكس" لمايكل كيرسك:

في تطبيقات UNIX الحديثة ، يمكن أن تحتوي كل عملية على سلاسل عمليات متعددة للتنفيذ. إحدى طرق تصور مؤشرات الترابط هي مجموعة من العمليات التي تشترك في نفس الذاكرة الظاهرية ، بالإضافة إلى نطاق من السمات الأخرى. كل مؤشر ترابط يتم تنفيذ نفس رمز البرنامج ويشارك نفس منطقة البيانات والكومة. ومع ذلك ، يحتوي كل مؤشر ترابط الخاص به يحتوي على المتغيرات المحلية ومعلومات اتصال استدعاء دالة. [LPI 2.12]







c++ c linux multithreading