تسلط بر زمینه ها در Go | HackerNoon

در Go، Contexts یک روش استاندارد برای ارسال فراداده و سیگنال‌های کنترل بین گوروتین‌ها ارائه می‌کند. آنها عمدتاً برای مدیریت زمان اجرای کار، انتقال داده ها و لغو عملیات استفاده می شوند. این مقاله انواع مختلف زمینه ها در Go و نمونه هایی از نحوه استفاده از آنها را پوشش می دهد.

مقدمه ای بر زمینه ها

زمینه ها در Go با نشان داده می شوند context.Context رابط، که شامل روش هایی برای دریافت است ضرب الاجل ها، لغو، ارزش های، و انجام شده کانال ها بسته اولیه برای کار با زمینه ها است context.

package context

type Context interface {
    Deadline() (deadline time.Time, ok bool)
    Done() 

انواع زمینه

چهار عملکرد اصلی برای ایجاد زمینه وجود دارد:

  1. context.Background(): یک زمینه خالی را برمی گرداند. معمولاً به عنوان زمینه اصلی برای کل برنامه استفاده می شود.
  2. context.TODO(): زمینه ای را برمی گرداند که می تواند در مواقعی که زمینه مورد نیاز است اما هنوز تعریف نشده است استفاده شود. این نشان می دهد که زمینه نیاز به کار بیشتر دارد.
  3. context.WithCancel(زمینه اصلی): یک زمینه مشتق شده را برمی گرداند که می توان آن را با فراخوانی تابع لغو لغو کرد.
  4. context.WithDeadline(زمینه اصلی، زمان d.Time): یک زمینه مشتق شده را برمی گرداند که به طور خودکار در یک زمان مشخص (مهلت) لغو می شود.
  5. context.WithTimeout(زمینه والد، زمان وقفه. مدت زمان): مشابه WithDeadline، اما …

Source link