تفاوت میان نسخه‌های «وضعیت رقابتی»

جز
ربات: مرتب‌سازی رده‌ها؛ زیباسازی
جز (ربات: مرتب‌سازی رده‌ها؛ زیباسازی)
 
==[[الکترونیک]]==
به عنوان مثال,مثال، یک [[دروازه]] And با دو ورودی که در یک ورودی با سیگنال A و در ورودی دیگر با سیگنال Á تغذیه می شود.در این تئوری خروجی هیچ وقت نباید یک شود.هر چند که,که، اگر تغییر در مقدار A از مقدار انتشار به ورودی دوم بیشتر طول بکشد,بکشد، هنگامی که مقدار A از صفر به یک تغییر پیدا کند,کند، در یک زمان کوتاه,کوتاه، هر دو ورودی در حالت یک قرار می گیرد و همچنین خروجی دروازه نیز مقدار یک می شود.
 
==[[رایانه]]==
وضعیت رقابتی در [[نرم افزار]] هنگامی ناشی می شود که [[پردازش]] های مختلفی به یک وضع مشترک بستگی داشته باشد. به عنوان مثال بگذارید دو رشته T1 و T2 را فرض کنیم.هر کدام مقدار سراسری i را می خواهند یک واحد اضافه کنند. به طور ایده آل,آل، مجموعه دستورهای زیر باید انجام شود:
 
# integer i=0 (حافظه)
# T1 مقدار i را از حافظه خوانده و به Register1Register۱ انتقال می دهد.
# T1 مقدار i را که در Register1Register۱ است,است، یک واحد اضافه می کند. Register1=1
# T1 مقدار Register1Register۱ را در حافظه ذخیره می کند. i=1
# T2 مقدار i را از حافظه خوانده و به Register2Register۲ انتقال می دهد.
# T2 مقدار i را که در Register2Register۲ است,است، یک واحد اضافه می کند. Register2=2
# T2 مقدار Register2Register۲ را در حافظه ذخیره می کند. i=2
# i=2
در حالت بالا همان طور که انتظار می رفت مقدار i مساوی 2۲ است,است، با اینکه,اینکه، اگر دو رشته به طور همزمان و بدون فقل کردن داده و [[همگام سازی]] اجرا شوند,شوند، خروجی دستور باید اشتباه شود که مجموعه دستورهای دیگر زیر این سناریو را نشان می دهد:
 
# integer i=0 (حافظه)
# T1 مقدار i را از حافظه خوانده و به Register1Register۱ انتقال می دهد.
# T2 مقدار i را از حافظه خوانده و به Register2Register۲ انتقال می دهد.
# T1 مقدار i را که در Register1Register۱ است,است، یک واحد اضافه می کند. Register1=1
# T2 مقدار i را که در Register2Register۲ است,است، یک واحد اضافه می کند. Register2=1
# T1 مقدار Register1Register۱ را در حافظه ذخیره می کند. i=1
# T2 مقدار Register2Register۲ را در حافظه ذخیره می کند. i=1
# i=1
 
مقدار نهایی i مساوی یک شده است به جای اینکه انتظار می رفت مساوی 2۲ شود.
 
==منابع==
<references />
 
[[رده:اشکالهای برنامه‌نویسی]]
[[رده:سخت‌افزار رایانه]]
[[رده:ضد الگو]]
[[رده:منطق در علوم کامپیوتر]]
[[رده:همروندی]]
[[رده:اشکالهای برنامه‌نویسی]]
[[رده:سخت‌افزار رایانه]]
 
[[ar:حالة تسابق]]