שאלת היום....

rontech

New member
שאלת היום....

איך אתם מתמודדים עם קריאה לפונקציה חוסמת או סינכרונית בקוד שלכם?

נ.ב
פונקציה חוסמת - הנים/חוט שלכם ממתין לתוצאת הפעולה
פונקציה סינכרונית - הנים'/חוט שלכם מבצע את הפעולה

בנעילות של עצמי סיכנרון MT החסימה גם מתבטאת בהשהייה של החוט/נים
מה שנקרא SUSPENDED MODE
 

mom at work

New member
עוצמים עיניים ומתפללים לטוב

לא הבנתי את השאלה... מה זאת אומרת איך מתמודדים?
 

יבגניי34

New member
the only proven way to build working code

 

rj111

New member
בפונקציה חוסמת אפשר להשתמש בסמפור

עושים wait לסמפור והתהליך מתחיל לרוץ כשתהליך אחר משחרר את הסמפור.
 

Lhuna1

New member
אכן השאלה לא ברורה

מה הבעיה להתמודד? רוב הפונקציות הן סינכרוניות בכל השפות שהכרתי עד היום, זו ברירת המחדל.
פונקציות הן לרוב אסינכרוניות כשהן צריכות לבצע פעולה ארוכה מהרגיל או לגשת למשאבים שלא ידוע מתי יהיו זמינים ומתי יחזירו תשובה (בקשת רשת למשל).
אם יש לך פונקציה "מסוכנת" במובן זה, שהיא בכל זאת סינכרונית וחוסמת משום מה, אז אל תקרא לה בת'רד הראשי שלך או בכל ת'רד שחשוב לך לא להשהות, אלא בת'רד שרץ ברקע.
(אתה יכול לעטוף אותה בפונקציה אסינכרונית משלך שתעשה את זה)
&nbsp
&nbsp
 

rontech

New member
אני משחרר את הקוד עם THREAD אחר

פונקציות חוסמות.... בהמתנה לסוקט....
במנעולים.... מה קורה אם הצד השני לא שולח לסוקט?
מה קורה אם הצד השני לא משחרר עצם סינכרון (כמו MUTEX)?
 

user32

Well-known member
מנהל
בימינו אין הצדקה לסוקט חוסם

כמעט כל סביבה היום תומכת בnon blocking I/O. המצב האידיאלי בעיניי הוא לפתוח Thread בעיקר כשיש פעולה חישובית ארוכה כך שחוט נוסף יכול להריץ פעולה מקבילית ולנצל את הליבות המרובות שקיימות היום כמעט בכל מחשב.
 
למעלה