الدرس 9: POSIX Threads — الإنشاء والانضمام (Join)
الـ thread هو وحدة تنفيذ خفيفة داخل العملية (process). في هذا الدرس نتعلم إنشاء الـ threads باستخدام pthread_create، والانتظار حتى انتهائها باستخدام pthread_join، وفهم الفرق الجوهري بين الـ thread والعملية.
العملية (process) مثل المصنع؛ والـ thread عامل داخل المصنع. جميع العمال يتشاركون المستودع نفسه (الذاكرة) لكن كل واحد يعمل باستقلالية.
- thread (خيط التنفيذ)
- وحدة تنفيذ مستقلة داخل العملية، تتشارك الذاكرة وجدول واصفات الملفات (file descriptors) مع بقية الـ threads، لكنها تمتلك stack وregisters خاصين بها.
- pthread
- POSIX Threads — معيار Unix لإدارة الـ threads، مُنفَّذ في Linux عبر libpthread. تتضمن واجهة الـ API الدوال pthread_create وpthread_join وغيرها.
- pthread_create
- دالة لإنشاء thread جديد. تأخذ مُعرِّف thread، وخصائص (attributes)، ودالة البداية (start function)، ووسيطًا. تُعيد 0 عند النجاح.
- pthread_join
- تنتظر انتهاء الـ thread وتحرر موارده. بدون join، يبقى thread من نوع zombie في الذاكرة.
- TID (مُعرِّف thread)
- مُعرِّف فريد للـ thread داخل العملية، تُعيده pthread_self() أو يُخزَّن في الـ pthread_t المُمرَّر إلى pthread_create.