שני אנשים שמתיישבים על אותו כיסא באותו רגע
מה קורה כששני תהליכים נוגעים באותו מידע באותו רגע — ואיך נעילה מצילה אתכם.
נשאר מוצר אחד אחרון במלאי, שני אנשים קונים אותו באותו רגע — ושניהם מקבלים אישור הזמנה. כמו שני אנשים שרואים את הכיסא האחרון הפנוי בבית קפה ובאים לשבת: אם שניהם מנסים להתיישב באותו זמן, מישהו מהם יגמור על הרצפה.
המערכת בודקת את המלאי — יש אחד — ומאשרת ללקוח הראשון. אבל לפני שהיא מספיקה לעדכן את המלאי, הלקוח השני גם רואה "יש במלאי" ומקבל אישור. זה Race Condition: שני תהליכים רצים במקביל ונוגעים באותו מידע באותו הרגע.
לפני שמישהו נוגע במלאי, המערכת נועלת את השורה במסד הנתונים. כמו תא מדידה בחנות: הראשון נכנס, הדלת ננעלת, והשני מחכה בתור. רק אחרי שהראשון סיים — השני נכנס. ואם המוצר נגמר, הוא מקבל "אזל המלאי" במקום אישור מזויף.
טיפ: אם האפליקציה שלכם מתעסקת במלאי, בכרטיסים, או בכל משאב מוגבל — קחו בחשבון Race Conditions והשתמשו בנעילה לפני שנוגעים בנתון.
"שני אנשים קנו את המוצר האחרון באותה שנייה. בלי נעילה — שניהם קיבלו אישור על מוצר שכבר לא קיים."