מה זה Pthread_cond_signal?
מה זה Pthread_cond_signal?

וִידֵאוֹ: מה זה Pthread_cond_signal?

וִידֵאוֹ: מה זה Pthread_cond_signal?
וִידֵאוֹ: סינכרון בין תהליכים - חלק כא' - משתני תנאי (הסבר) POSIX 2024, מאי
Anonim

ה pthread_cond_signal הפונקציה () תבטל את החסימה של לפחות אחד מהשרשורים החסומים במשתנה התנאי שצוין cond (אם שרשורים כלשהם חסומים ב-cond). אם יותר משרשור אחד נחסם על משתנה תנאי, מדיניות התזמון תקבע את הסדר שבו האשכולים יבוטלו.

פשוט כך, מה זה Pthread_cond_t?

תיאור. ה pthread_cond_wait () ופונקציות pthread_cond_timedwait() משמשות לחסימה במשתנה תנאי. הם נקראים עם mutex נעול על ידי שרשור הקוראים או שתגרום להתנהגות לא מוגדרת.

בנוסף, מדוע Pthread_cond_wait צריך mutex? ה מנעול משמש להגנה על משתנה המצב עצמו. בגלל זה אתה צוֹרֶך הוא ננעל לפניך לַעֲשׂוֹת המתנה. לאחר מכן, כאשר משתנה התנאי מאותת או ישודר אליו, אחד או יותר מהשרשורים ברשימת ההמתנה יתעוררו מנעול יינעל שוב בקסם עבור השרשור הזה.

יתר על כן, כיצד משתמשים במשתני תנאי?

באופייני להשתמש , א מַצָב ביטוי מוערך תחת הגנה של מנעול mutex. כאשר מַצָב הביטוי הוא שקר, החוט חוסם על משתנה מצב . ה משתנה מצב לאחר מכן מסומן על ידי חוט אחר כאשר הוא משנה את מַצָב ערך.

מה זה Pthread_mutex_t?

pthread_mutex_t משמש להכרזה על אובייקט מסוג mutex. לכן: pthread_mutex_t mymutexvariable; לאחר מכן תשתמש במשתנה mutex כדי לנעול ולבטל את הנעילה של mutex.