چرا توی گو starvation اتفاق نمیافته؟
1️⃣ زمانبندی پیشگیرانه (Preemptive Scheduling):
تو Go، اگه یه گوروتین مدت زیادی پردازنده رو اشغال کنه (مثلاً تو یه حلقه سنگین گیر کرده باشه)، scheduler به طور خودکار وارد عمل میشه و به اون گوروتین میگه: "فعلاً کافیه، بقیه هم باید اجرا بشن!" اینجوری بقیه گوروتینها تا ابد منتظر نمیمونن.
2️⃣ مدل دزدیدن کار (Work-Stealing):
تو Go، هر پردازنده مجازی مسئول اجرای یه سری گوروتینه. حالا اگه یه پردازنده بیکار بشه، میره سراغ بقیه پردازندهها و گوروتینهای تو صف اونا رو میدزده😄
1️⃣ زمانبندی پیشگیرانه (Preemptive Scheduling):
تو Go، اگه یه گوروتین مدت زیادی پردازنده رو اشغال کنه (مثلاً تو یه حلقه سنگین گیر کرده باشه)، scheduler به طور خودکار وارد عمل میشه و به اون گوروتین میگه: "فعلاً کافیه، بقیه هم باید اجرا بشن!" اینجوری بقیه گوروتینها تا ابد منتظر نمیمونن.
2️⃣ مدل دزدیدن کار (Work-Stealing):
تو Go، هر پردازنده مجازی مسئول اجرای یه سری گوروتینه. حالا اگه یه پردازنده بیکار بشه، میره سراغ بقیه پردازندهها و گوروتینهای تو صف اونا رو میدزده😄