You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/chapter 3/3.4-atomic.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -189,7 +189,7 @@ func main() {
189
189
190
190
مثال فوق یک نمونه از پیادهسازی سرور با قابلیت مدیریت وضعیت و graceful shutdown در زبان Go است. ساختار Server از یک پرچم اتمی active برای نشان دادن وضعیت سرور (فعال/غیرفعال) و یک WaitGroup برای هماهنگی بین گوروتینها استفاده میکند. متد Start با استفاده از atomic.CompareAndSwapInt32 به صورت اتمی وضعیت سرور را بررسی و تغییر میدهد و از راهاندازی مجدد سرور در حال اجرا جلوگیری میکند. متد run در یک گوروتین مجزا اجرا شده و با حلقهای که وضعیت active را به صورت اتمی بررسی میکند، کار میکند تا زمانی که سرور فعال باشد. متد Stop نیز به صورت اتمی وضعیت سرور را تغییر داده و با فراخوانی Done روی WaitGroup، خاتمه سرور را اطلاع میدهد. در تابع main، سرور راهاندازی شده، وضعیت آن به صورت همزمان بررسی میشود و پس از مدت مشخصی، سرور متوقف میشود و با Wait برای اتمام graceful shutdown منتظر میماند.
0 commit comments