TGViewer
Microfrontend.ir Microfrontend.ir @microfrontend_ir · 1.35K subscribers
Post #282 1.02K
Microfrontend.ir زبان Rust تضمین Race-Free بودن می‌ده، زبان Go این تضمین رو نمی‌ده ولی به فرهنگ و کالچر برنامه‌نویساش دلخوشه و به نظرم دلخوشی بجاییه و البته اگر High Availability در معماری فاکتور بحرانیه طبعا زبان یا ران تایمی مثل Erlang اولویت بالاتری داره. 〰️〰️〰️〰️〰️〰️…
Race Condition
فرض کنید برنامه‌‌ای می‌نویسید که چندین ترد یا پروسس به طور همزمان در حال اجرا هستند. این ترد ها ممکن است به داده های مشترکی دسترسی داشته باشند و آنها را بروزرسانی کنند. حال اگر این دسترسی و به روزرسانی بدون کنترل و نظم انجام شود، به طوری که ترتیب دقیق دسترسی و به روزرسانی داده ها توسط ترد ها مشخص نباشد، شرایط مسابقه (Race Condition) رخ می دهد.
در این مثال، متغیر counter به عنوان یک شمارنده استفاده می شود. 10 تابع به طور همزمان مقدار counter را با استفاده از تابع increment افزایش می دهند.
در Rust با وجود اینکه ما با چندین ترد به شمارنده دسترسی داریم، سیستم مالکیت Rust تضمین می‌کند که فقط یک ترد می‌تواند همزمان شمارنده را به‌صورت تغییرپذیر یا میوتیبل در اختیار بگیرد و با قطعیت می‌توان گفت که عدد ۱۰ چاپ خواهد شد.
در Go با استفاده از یک اشاره گر مستقیماً به متغیر شمارنده دسترسی داریم. این یک Race Condition بالقوه ایجاد می کند زیرا چندین گوروتین می توانند همزمان آن را تغییر دهند. مقدار نهایی شمارنده بسته به اینکه کدام گوروتین در مسابقه برای دسترسی به آن "برنده" شود، می تواند غیرقابل پیش بینی باشد.
  • 👍 18
  • ❤ 1
More from @microfrontend_ir
  1. Aug 10, 2026photo post
  2. Aug 10, 2026Post #363
  3. Aug 10, 2026قبلنا خیلی با قیاس مغز و سی پی یو مشکل داشتم و برداشتم این بود که اساسا قیاس درستی نیست. م…
  4. Aug 6, 2026اگر احیانا داشتید از مکتب خونه می‌دیدید از اونجا حذف شده و میتونید از درس افزار شریف ببینی…
  5. Aug 2, 2026اخیرا از این دوره مکتب خونه واقعا لذت بردم https://maktabkhooneh.org/course/خلاقیت-نوآوری-…
  6. Jun 8, 2026تازه شروعش کردم ولی به نظر باحال میاد Your Code as a Crime Scene, Second Edition Use Foren…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →