گوروتینها (goroutines) و کانالها (channels)
بخشی از دوره Go
برنامهی شما باید بیست فایل را دانلود کند. به شکل معمولی که بنویسیدش، اولی را دانلود میکند، منتظر میماند، دومی را دانلود میکند، منتظر میماند، و همینطور تا آخر. تقریباً تمام آن زمان صرف هیچ کاری نمیشود، فقط انتظار برای شبکهای که میلیونها بار از پردازندهی شما کندتر است. اگر انتظارها روی هم میافتادند، کار بیست برابر زودتر تمام میشد.
انجام چند کار به طور همزمان قدیمیترین مسئلهی سخت برنامهنویسی است و بیشتر زبانها واقعاً دشوارش میکنند. Go دور همین موضوع طراحی شده، و این همان درسی است که آن طراحی خودش را نشان میدهد. دو ایده به شما میرسد. گوروتین (goroutine) تکهای از برنامهی شماست که در کنار بقیهاش اجرا میشود. کانال لولهای است برای رد کردن مقدارها از یک گوروتین به گوروتین دیگر، به شکلی امن، بیآنکه لازم باشد خودتان قفلی ترتیب دهید.
میخواهی Go گوروتینها (goroutines) و کانالها (channels) را در یک محیط واقعی یاد بگیری؟
روی دکمه زیر بزن تا یک ماشین لینوکس با Go آماده دریافت کنی و گوروتینها (goroutines) و کانالها (channels) را بهصورت عملی با یک مربی هوشمند که کدت را میشناسد تمرین کنی.
شروع این درسگوروتینها (goroutines) و کانالها (channels)چه چیزهایی یاد میگیری
- The go keyword
- Goroutine lifetime
- Unbuffered channels
- Buffered channels
- Send and receive
- Range over channel
- Close a channel
