דילמת נעילת Singleton
נניח ויש לי את הסינגלטון הבא :
נניח ויש לי את הסינגלטון הבא :
public class JobsMAnager { private static JobsMAnager m_Current; public static JobsManager Current { get { if (m_Current == null) { m_Current = new JobsManager (); } return m_Current; } } }
יש כאן בעיה, במידה ו 2 משתמשים יגשו בו זמנית בדיוק, יווצרו 2 מופעים של האובייקט. ניתן להוסיף Lock מעל התנאי, אבל אז פשוט העברנו את אותה הבעיה שורה אחת מעלה. יצא לי לראות קוד שמשתמש ב Lock מקונן, אבל גם שם לדעתי קיימת אותה בעיה בדיוק. כיצד מתמודדים ? (אולי ממתינים פרק זמן רנדומלי לפני נעילת הקטע הקריטי ?)