נתונה פונקצייה foo שמקבלת long x ונקראת ע"י ת'רדים מרובים.
צריך להמנע מביצוע בו זמנית של אותו ערך.
לדוגמא: אם 2 קריאות עם הערך x=10 מגיעות, אחת צריכה להתבצע ואחת צריכה להמתין.
אבל אם מגיעים ערכים שונים, כגון x= 10 ו x = 11 שנייהם צריכות להתבצע במקביל.
צריך לא לשמור בזיכרון את כל הערכים את כל הערכים שנקראו בעבר לפונקצייה, אלא, לשחרר אותם ברגע שת'רדים יוצאים(או מסיימים) או לחכות ל GC.
בנוסף, צריך למנוע מצב שערכים שונים יתחרו על אותו Static sherd lock, לדוגמא:
הערכים 10 ו - 11 יתבצעו במקביל וכשיגיע שוב 10 הוא ימתין ובפעם הבאה - הוא יהיה ראשון, כאשר במקביל יכולים להכנס עוד ועוד ערכים.
שברתי את הראש כבר, מקווה שמישהו פה יוכל לתת לי כיוון
תודה.
|