שיעור 9: POSIX Threads — יצירה ו-join
Thread הוא יחידת ביצוע קלה-משקל בתוך תהליך. בשיעור זה נלמד ליצור threads עם pthread_create, להמתין לסיומם עם pthread_join, ולהבין את ההבדל המהותי בין thread לתהליך.
תהליך הוא מפעל; thread הוא עובד במפעל. כל העובדים חולקים את אותה מחסן (זיכרון), אבל כל אחד עובד בנפרד.
- thread (חוט ביצוע)
- יחידת ביצוע עצמאית בתוך תהליך, חולקת זיכרון וtable file descriptors עם שאר ה-threads, אך בעלת stack ו-registers משלה.
- pthread
- POSIX Threads — תקן Unix לניהול threads, מיושם בלינוקס דרך libpthread. ממשק ה-API כולל pthread_create, pthread_join ועוד.
- pthread_create
- פונקציה ליצירת thread חדש. מקבלת מזהה thread, תכונות, פונקציית start, וארגומנט. מחזירה 0 בהצלחה.
- pthread_join
- מחכה לסיום thread ומשחרר את משאביו. בלי join — thread zombie נשאר בזיכרון.
- TID (מזהה thread)
- מזהה ייחודי של thread בתוך תהליך, מוחזר על-ידי pthread_self() או מאוחסן ב-pthread_t שהועבר ל-pthread_create.