למה Pthread_cond_wait צריך mutex?
למה Pthread_cond_wait צריך mutex?

וִידֵאוֹ: למה Pthread_cond_wait צריך mutex?

וִידֵאוֹ: למה Pthread_cond_wait צריך mutex?
וִידֵאוֹ: Maya Avraham - Lama מאיה אברהם - למה קליפ 2024, מאי
Anonim

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

לגבי זה, האם Pthread_cond_wait פותח mutex?

ה pthread_cond_wait הפונקציה () חוסמת את השרשור הקורא במשתנה התנאי cond, and פותח המשויך mutex mutex . שרשור השיחות כנראה ננעל מנעול לפני המתנה למשתנה התנאי. בחזרה מהפונקציה, ה מנעול שוב נעול ובבעלות השרשור המתקשר.

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

מלבד לעיל, מדוע משתני מצב צריכים mutex?

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

למה אנחנו צריכים משתני מצב?

משתני מצב אפשר לסט של חוטים לישון עד לדגדוג! אתה יכול לדגדג חוט אחד או את כל החוטים שישנים. אם תעיר רק שרשור אחד אז מערכת ההפעלה תחליט איזה שרשור להעיר.

מוּמלָץ: