💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ mohammadesmaili
همروندی و خروج از برنامه
جامعه گولنگ ایجاد شده در ۲۹ مهر ۱۴۰۳

با عرض سلام و خسته نباشید یک سوال داشتم من نیاز دارم تا یک گوروتین در تابع main من اجرا شود اما بعد از انجام یکسری تسک‌ها از برنامه با status ۰ با os.exit(0) خارج شم 

یعنی به این صورت 

func main()
{

 

do something 

os.exit(0)

 

 

go func()

{

 

 

Do Another Even When script exit 

 

 

}()

}


من به شدت سرعت نرم افزار برای مهم هستش و از command.exec هم نمیخوام استفاده کنم شما به عنوان بست پرکتیس چه پیشنهادی میدید؟

سلام،

با os.Exit(0) همه گوروتین‌ها هم همراه برنامه متوقف میشن.

بهتره از sync.WaitGroup استفاده کنی تا گوروتین کارش رو تموم کنه یا اگه لازمه اون تسک مستقل باشه، بهتره به جای گوروتین، یک فرآیند یا سرویس جدا(Child Process در سیستم‌عامل یونیکسی) راه بندازی که خودش اجرا بشه و وابسته به برنامه اصلی نباشه.

محسن موحد ۳۰ مهر ۱۴۰۳، ۰۴:۲۸