دوره آموزشی
دوبله زبان فارسی
همزمانی در Go (Golang)
✅ سرفصل و جزئیات آموزش
در این دوره چرایی و چگونگی همزمانی در Go را می آموزید.
آنچه یاد خواهید گرفت
- چگونه کوروتین ها را اسپین کرده و داده را بین آن ها منتقل کنیم؟
- چگونه از شرایط رقابت (race condition) و ددلاک ها جلوگیری کنیم؟
- چگونه اجرای کوروتین ها را همزمان سازی کنیم؟
- Scheduler در Go چگونه کار می کند؟
- چگونه با کوروتین ها و کانال ها، پایپ لاین های استریمینگ بسازیم؟
- چگونه داده را در سراسر مرز API، پس انتشار کنیم؟
پیش نیازهای دوره
- دانش اولیه زبان برنامه نویسی Go مانند حلقه ها، توابع و متدها
- نصب کامپایلر Go و هر IDE روی لپ تاپ
توضیحات دوره
سوالی که برای همه توسعه دهندگان مطرح می شود این است که آیا آن ها از منابع محاسباتی موجود به طور موثر استفاده می کنند؟
بررسی دوره
این دوره را می توان به پنج بخش تقسیم کرد:
- Primitive های همزمانی
- بررسی عمیق Primitive های همزمانی
- الگوهای همزمانی
- پکیج کانتکس
- بخش جایزه - رابط ها
در این دوره سعی داریم به این سوالات پاسخ دهیم.
Primitive های همزمانی
- محدودیت های Threads چیست؟
- مزیت های کوروتین نسبت به threads سیستم عامل چیست؟
- چگونه از شرایط رقابت اجتناب کنیم؟
- چگونه از کانال ها برای ارتباطات داده استفاده می شود؟
- چگونه می توانیم timeout و ارتباطات بدون بلاک را پیاده کنیم؟
- چه زمانی از mutex و کانال ها استفاده کنیم؟
- چگونه اجرای کوروتین ها را همزمان سازی کنیم؟
- چگونه شرایط رقابت را در Go تشخیص دهیم؟
بررسی عمیق Primitive همزمانی
- scheduler در Go چگونه کار می کند؟
- سوئیچینگ کانتکس چگونه کار می کند؟
- چگونه کانال ارسال و دریافت کارهای زیرین را انجام می دهد؟
الگوهای همزمانی
- چگونه با کوروتین ها و کانال ها، پایپ لاین های استریمینگ بسازیم؟
- چگونه مراحل محاسباتی فشرده Fan-out و Fan-in را انجام دهیم؟
- چگونه از نشت کوروتین ها جلوگیری کنیم؟
پکیج کانتکس
- چگونه می توانیم داده اسکوپ شده درخواست و سیگنال لغو را در سراسر مرزهای API پس انتشار کنیم؟
تمرین های کدنویسی
- هر مفهوم با یک تمرین کدنویسی دنبال می شود.
- بلوپرینت تمرینات در گیت هاب به اشتراک گذاشته شده است.
نمونه اپلیکیشن ها
آنچه خواهیم ساخت:
- بلوپرینت وب کراولر
- پایپ لاین پردازش تصویر
- Timeouts سرور HTTP با پکیج کانتکس
بخش جایزه - رابط ها
- چگونه رفتار مشترک بین آبجکت های مختلف را به عنوان تایپ انتزاعی تعریف کنیم؟
- رابط چگونه یک انتزاع برای توابع سطح بالاتر فراهم می کند؟
این دوره برای چه کسانی مناسب است؟
- دانشجویانی که به دنبال مفاهیم پایه تا پیشرفته برنامه نویسی Go هستند.
همزمانی در Go (Golang)
-
مقدمه 06:05
-
بررسی دوره 05:06
-
فرآیندها و Threads 07:51
-
چرا همزمانی سخت است؟ 06:27
-
کوروتین ها 04:37
-
تمرین - Hello 04:25
-
تمرین - سرور کلاینت 04:44
-
WaitGroups 05:28
-
تمرین - WaitGroup 01:48
-
کوروتین ها و Closures 00:48
-
تمرین - Closure - بخش 1 01:37
-
تمرین - Closure - بخش 2 02:02
-
بررسی عمیق Scheduler در Go 06:53
-
بررسی عمیق Scheduler در Go - سوئیچینگ کانتکس به دلیل فراخوانی همزمان سیستم 03:16
-
بررسی عمیق Scheduler در Go - سوئیچینگ کانتکس به دلیل فراخوانی غیرهمزمان سیستم 05:40
-
بررسی عمیق Scheduler در Go - معرفی Work Stealing 03:14
-
کانال ها 03:39
-
تمرین - کانال ها 01:22
-
محدوده، کانال های بافر 02:06
-
تمرین - محدوده 01:41
-
تمرین - کانال بافر 01:24
-
جهت کانال 01:05
-
تمرین - جهت کانال 03:35
-
مالکیت کانال 01:43
-
تمرین - مالکیت کانال 02:18
-
بررسی عمیق کانال ها 03:01
-
بررسی عمیق کانال ها - ارسال و دریافت 02:30
-
بررسی عمیق کانال ها - بافر پر شده 03:00
-
بررسی عمیق کانال ها - بافر خالی 03:01
-
بررسی عمیق کانال ها - کانال بافر نشده 02:01
-
بررسی عمیق کانال ها - خلاصه 01:11
-
Select 04:14
-
تمرین - Select 02:28
-
تمرین - Timeout 01:43
-
تمرین - ارتباطات بدون بلاک 01:58
-
Mutex 02:54
-
تمرین - Mutex 03:13
-
اتمیک 00:46
-
تمرین - اتمیک 02:22
-
متغیر شرطی 05:51
-
تمرین - متغیر شرطی - سیگنال 02:06
-
تمرین - متغیر شرطی - برودکست 02:55
-
همزمان سازی یکباره 00:46
-
تمرین - همزمان سازی یکباره 03:17
-
استخر همزمان سازی 01:14
-
تمرین - استخر همزمان سازی 03:54
-
Race Detector 01:30
-
تمرین - Race 05:12
-
وب کراولر - متوالی 02:30
-
وب کراولر - همزمان 07:30
-
پایپ لاین ها 04:29
-
تمرین - پایپ لاین ها 05:41
-
Fan-out و Fan-in 03:09
-
تمرین - Fan-out و Fan-in 05:05
-
لغو کوروتین ها 03:10
-
تمرین - لغو کوروتین ها 04:51
-
توالی پردازش تصویر 05:31
-
پایپ لاین پردازش تصویر 16:10
-
پکیج کانتکس 05:14
-
پکیج کانتکس برای لغو 08:15
-
پکیج کانتکس به عنوان بگ داده 01:57
-
تمرین - WithCancel 04:21
-
تمرین - WithDeadline 04:52
-
تمرین - WithTimeout 02:36
-
تمرین - WithValue 04:28
-
پکیج کانتکس - اصطلاحات Go 04:44
-
Timeouts سرور HTTP با پکیج کانتکس 12:41
-
رابط 12:20
-
رابط - implicit 02:31
-
رابط ها از کتابخانه استاندارد 05:24
-
تمرین - رابط کاربری io.Writer 02:20
-
تمرین - رابط Stringer 02:10
-
رضایت رابط 04:15
-
Type Assertion 04:57
-
تمرین - Type Assertion 05:47
-
رابط خالی 03:21
مشخصات آموزش
همزمانی در Go (Golang)
- تاریخ به روز رسانی: 1404/06/14
- سطح دوره:متوسط
- تعداد درس:76
- مدت زمان :05:00:21
- حجم :1.05GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy