עבור לתוכן

שאלה באלגוריתם, c#

Featured Replies

פורסם

נתונה פונקצייה foo שמקבלת long x ונקראת ע"י ת'רדים מרובים.

צריך להמנע מביצוע בו זמנית של אותו ערך.

לדוגמא: אם 2 קריאות עם הערך x=10 מגיעות, אחת צריכה להתבצע ואחת צריכה להמתין.

אבל אם מגיעים ערכים שונים, כגון x= 10 ו x = 11 שנייהם צריכות להתבצע במקביל.

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

בנוסף, צריך למנוע מצב שערכים שונים יתחרו על אותו Static sherd lock, לדוגמא:

הערכים 10 ו - 11 יתבצעו במקביל וכשיגיע שוב 10 הוא ימתין ובפעם הבאה - הוא יהיה ראשון, כאשר במקביל יכולים להכנס עוד ועוד ערכים.

שברתי את הראש כבר, מקווה שמישהו פה יוכל לתת לי כיוון

תודה.

נערך על-ידי mwalker03

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים