آموزش همزمانی در C++ مدرن : Crash Course (از جمله C++20)

Concurrency in Modern C++ : Crash Course ( including C++20 )

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: C++20، Multithreading، Concurrency، C++ مدرن، C++11، C++14، C++17، الگوریتم های موازی، Coroutines، Synchronization تسلط بر اصول سینتکس همزمانی C++، به شما امکان می دهد کارآمد و با کارایی بالا بنویسید. کد همزمان با اطمینان تجربه عملی با جدیدترین ویژگی‌های همزمانی C++20، از جمله کوروتین‌ها، لغو مشارکتی، std::jthread، سمافور، مانع، و لچ، مهارت‌های حل مسئله خود را با یادگیری نحوه استفاده از تکنیک‌های همزمان C++ مدرن برای مقابله افزایش داد. وظایف پیچیده و حساس به زمان در پروژه های شما. توانایی شناسایی و به کارگیری مناسب ترین ابزارهای همزمانی را برای سناریوهای مختلف به دست آورد و اطمینان حاصل کرد که کد شما هم قابل نگهداری و هم مقیاس پذیر است. ایجاد یک پایه قوی در C++ Concurrency که به عنوان پله ای برای کاوش بیشتر و تسلط بر موضوعات پیشرفته به صورت همزمان و پیش نیازها: دانش پایه C++: دانش آموزان باید درک اساسی از مفاهیم برنامه نویسی C++، از جمله نحو، ساختار داده، داشته باشند. حلقه ها، توابع و اصول شی گرا. این دوره برای ایجاد دانش موجود در C++ با معرفی مفاهیم همزمانی طراحی شده است. دسترسی به محیط توسعه ++C: برای دنبال کردن مثال‌ها و تمرین تکنیک‌های همزمانی آموزش داده شده در دوره، دانش‌آموزان باید به یک محیط توسعه C++ (مانند Visual Studio، Code::Blocks یا CLion) دسترسی داشته باشند که از C پشتیبانی می‌کند. ++20 استاندارد. تعهد زمانی: از آنجایی که این یک دوره آموزشی تصادفی آخر هفته است، دانش آموزان باید آماده باشند تا زمان قابل توجهی را در آخر هفته اختصاص دهند تا فعالانه با مطالب درسی درگیر شوند، نمونه ها را دنبال کنند و تمرینات تعیین شده را تکمیل کنند. تعهد شما به فرآیند یادگیری برای به حداکثر رساندن مزایای این دوره بسیار مهم است. اشتیاق به یادگیری: در حالی که تجربه قبلی در مورد همزمانی مورد نیاز نیست، دانش آموزان باید علاقه زیادی به یادگیری در مورد همزمانی C++ داشته باشند و مشتاق باشند تا مهارت های برنامه نویسی خود را گسترش دهند. نگرش فعالانه و اشتیاق برای یادگیری، تجربه شما را بسیار افزایش می دهد و به شما کمک می کند تا مطالب را به طور مؤثرتری جذب کنید.

به "C++ خود را توربوشارژ کنید با همزمانی: دوره تصادف آخر هفته" خوش آمدید!

آیا شما یک برنامه نویس هستید که به تازگی C++ را یاد گرفته اید و می خواهید قدرت واقعی همزمانی C++ مدرن را باز کنید؟ جلوترش رو نگاه نکن! فقط در یک آخر هفته، ما به شما کمک می‌کنیم تا به سرعت ملزومات همزمانی C++ را درک کنید و مهارت‌های کدنویسی خود را افزایش دهید. اینها مهارت هایی هستند که ابزارهایی مانند ChatGPT سال ها طول می کشد تا توسعه پیدا کنند.

در این دوره سریع و فشرده، ما به طور انحصاری بر روی نحو همزمانی C++ تمرکز خواهیم کرد و به شما این امکان را می‌دهد که ویژگی‌ها را به طور موثر در پروژه‌های خود درک کرده و به کار ببرید. ما می دانیم که وقت شما ارزشمند است، بنابراین ما به دقت سخنرانی های کوتاه و ساده ای را طراحی کرده ایم که نحو را معرفی می کند و استفاده از آن را از طریق مثال های مختصر توضیح می دهد. به این ترتیب، تجربه یادگیری خود را بدون گرفتار شدن در جزئیات غیر ضروری به حداکثر می رسانید.

برنامه درسی ما شامل جدیدترین ویژگی‌های C++20 است که به شما اطمینان می‌دهد که با ابزارهای پیشرفته همزمانی به‌روز هستید. شما در مورد کوروتین ها، لغو تعاون، std::jthread، سمافور، مانع، و چفت ها خواهید آموخت. این ویژگی‌های قدرتمند، مهارت‌های ++C شما را به سطح بالاتری می‌برد و شما را به برنامه‌نویسی مؤثرتر و رقابتی‌تر در چشم‌انداز فناوری به سرعت در حال تکامل امروز تبدیل می‌کند.

اگر به تازگی C++ را یاد گرفته‌اید و می‌خواهید بدون صرف هفته‌ها روی تئوری و پروژه‌های پیچیده وارد دنیای همزمانی شوید، این دوره برای شما عالی است. تا پایان این آخر هفته، درک کاملی از نحو همزمان C++ مدرن خواهید داشت و آماده به کارگیری آن در سناریوهای دنیای واقعی خواهید بود.

خب، منتظر چه چیزی هستید؟ اکنون ثبت نام کنید و بیایید مهارت های ++C شما را با دوره تصادف آخر هفته این هفته تقویت کنیم!


چرا تسلط بر ویژگی های همزمان C++ مدرن برای برنامه نویسان امروزی حیاتی است؟

درک و استفاده از ویژگی‌های همزمانی مدرن که در زبان C++ تعبیه شده است در دنیای پر سرعت و تکنولوژی محور امروزی بسیار مهم است. نوشتن کد همزمان کارآمد و با کارایی بالا یک مهارت بسیار مورد توجه است زیرا برنامه ها و سیستم های نرم افزاری به طور فزاینده ای پیچیده و منابع فشرده می شوند. با یادگیری ویژگی‌های همزمان C++ مدرن، پتانسیل واقعی پردازنده‌های چند هسته‌ای را باز می‌کنید و عملکرد و پاسخگویی برنامه‌های خود را به طور قابل توجهی بهبود می‌بخشید. این دانش شما را به عنوان یک برنامه نویس متمایز می کند و به شما این امکان را می دهد که به طور مؤثرتری با مشکلات پیچیده و واقعی مقابله کنید. با سرمایه گذاری بر روی مهارت های خود و تسلط بر همزمانی C++ مدرن، جلوتر از منحنی خواهید ماند و به یک دارایی ارزشمند در چشم انداز توسعه نرم افزار رقابتی تبدیل خواهید شد و دنیایی از فرصت ها را در حرفه خود باز می کنید.


تکامل مدل حافظه C++

مدل همزمانی C++ به طور قابل توجهی از C++11 به C++20 تکامل یافته است و ویژگی‌های زبان جدید و مؤلفه‌های کتابخانه‌ای را معرفی می‌کند که پشتیبانی قدرتمندتر و انعطاف‌پذیرتری را برای برنامه‌نویسی همزمان ارائه می‌دهد. در اینجا برخی از تغییرات مهم رخ داده است:

  1. C++11: C++11 اولین مجموعه از ویژگی‌های همزمانی سطح زبان را معرفی کرد، از جمله کلاس std::thread برای ایجاد و مدیریت رشته‌ها، mutexes و متغیرهای شرط برای همگام‌سازی، و انواع اتمی برای بدون قفل برنامه نويسي. C++11 همچنین مدل حافظه متوالی سازگاری-مقابله داده (SC-DRF) را تعریف کرده است که رفتار صحیح را برای برنامه‌های به خوبی همگام‌سازی شده تضمین می‌کند.

  2. C++14: C++14 چندین بهبود در ویژگی‌های همزمانی معرفی شده در C++11 ارائه کرد، از جمله سازنده‌های جدید و توابع عضو برای std::thread، پشتیبانی از جستجوی ناهمگن در کانتینرهای همزمان، و بهبودهایی در std::قالب اتمی.

  3. C++17: C++17 چندین ویژگی و پیشرفت همزمان جدید را معرفی کرد، از جمله پشتیبانی از الگوریتم‌های موازی در کتابخانه الگوی استاندارد (STL)، اتصالات ساختاری برای برگرداندن مقادیر چندگانه از توابع std::thread، و پشتیبانی از shared_mutex برای دسترسی به خواندن مشترک و دسترسی انحصاری نوشتن. C++17 همچنین یک مدل حافظه جدید را معرفی کرد که تضمین های قوی تری برای عملیات اتمی ارائه می دهد.

  4. C++20: C++20 بر اساس ویژگی‌های همزمانی معرفی شده در نسخه‌های زبان قبلی ساخته شده و چندین ویژگی و پیشرفت جدید اضافه می‌کند. اینها شامل کلاس atomic_ref است که راه ایمن‌تر برای دسترسی به متغیرهای مشترک بدون نیاز به همگام‌سازی صریح، بهبود مدل حافظه برای کاهش نیاز به حصارها و موانع صریح، و پیشرفت‌هایی در کتابخانه coroutines که نوشتن ناهمزمان را آسان‌تر می‌کند، فراهم می‌کند. کد.

تکامل مدل همزمانی C++ از C++11 به C++20، مجموعه‌ای از ابزارهای قدرتمندتر و انعطاف‌پذیر را برای نوشتن برنامه‌های همزمان کارآمد و صحیح در اختیار توسعه‌دهندگان قرار داده است. ویژگی های زبان جدید و اجزای کتابخانه ای که در هر نسخه معرفی شده اند، بسیاری از چالش ها و محدودیت های نسخه های قبلی را برطرف کرده اند. علاوه بر این، آنها برنامه‌نویسی همزمان در C++ را در دسترس‌تر و استفاده آسان‌تر کرده‌اند.


سرفصل ها و درس ها

معرفی Introduction

  • اهداف دوره Course Objectives

مدیریت موضوعات (C++11 به بعد) Managing Threads ( C++11 onwards )

  • راه اندازی موضوعات Launching Threads

  • انتقال آرگومان ها به رشته ها Passing arguments to threads

  • شروع رشته تمرین - انتقال C++20 به C++14! Launching thread Excercise - C++20 to C++14 porting!

  • توابع عضو std::thread (C++11) و std::jthread (C++20) Member functions of std::thread ( C++11 ) and std::jthread ( C++20 )

  • آزمون عملکرد اعضا Member Function Quiz

  • قابلیت لغو تعاونی در C++20 منتشر شد Cooperative Cancellation feature released in C++20

  • لغو تعاونی گردش کار عمومی در برنامه هایی با استفاده از C++20 امکان پذیر است Cooperative Cancellation General workflow possible in programs using C++20

  • مسابقه لغو تعاونی Cooperative Cancellation Quiz

  • ملاحظات عملی استفاده از thread ها در C++ 11/14/17/20 Practical considerations of using threads in C++ 11/14/17/20

  • چه زمانی از std::async استفاده کنیم؟ When to use std::async?

  • async در مقابل موضوع؟ async vs thread?

همگام سازی در برنامه های چند رشته ای با استفاده از ویژگی های همزمانی C++ Synchronization in multhreaded applications using C++ concurrency features

  • مروری بر مکانیسم های همگام سازی Overview of synchronization mechanisms

  • آشنایی با چفت های معرفی شده در C++20 Introduction to latches introduced in C++20

  • نمونه کد چفت (نیاز به C++20) Code example of latches ( needs C++20 )

  • از موارد std::latch در برنامه هایی با استفاده از C++20 استفاده کنید Use cases of std::latch in programs using C++20

  • آزمون std::latch std::latch quiz

  • مقدمه ای بر موانع معرفی شده در C++20 introduction to barriers introduced in C++20

  • مثال کد std::barrier (نیاز به C++20) Code example of std::barrier (needs C++20)

  • از موارد std::barrier در برنامه هایی با استفاده از C++20 استفاده کنید Use cases of std::barrier in programs using C++20

  • std:: مسابقه مانع std::barrier quiz

معاملات آتی (C++11 به بعد) Futures ( C++11 onwards )

  • مقدمه ای بر معاملات آتی در C++ مدرن Introduction to futures in Modern C++

  • توابع عضو std::future Member functions of std::future

  • مسدود کردن و استفاده از نظرسنجی از std::future Blocking and Polling usage of std::future

  • std:: آزمون آینده std::future Quiz

  • توابع عضو std::promise Member functions of std::promise

  • انتقال داده با استفاده از std::future و std::promise Passing data using std::future and std::promise

  • عبور استثنا با استفاده از std::future و std::promise Passing exception using std::future and std::promise

  • استفاده از قراردادهای آتی در برنامه ها Using futures in programs

  • آینده در C++ تک شات هستند! Futures in C++ are single shot!

  • قراردادهای آتی مشترک Shared futures

  • آتی مشترک در عمل Shared futures in action

  • std::async به عنوان مکانیزم همزمانی بازبینی شد std::async revisted as concurrency mechanism

Mutex (C++11 به بعد) Mutex ( C++11 onwards )

  • مقدمه ای بر std::mutex Introduction to std::mutex

  • قفل و Mutexe در C ++ مدرن برای مدیریت یکپارچه زمان زندگی Locks and Mutexes in modern C++ for seamless life time management

  • نمونه کد قفل و mutexe در C ++ مدرن Code example of locks and mutexes in modern C++

  • قفل و mutexes Locks and mutexes

متغیرهای شرطی (C++11 به بعد) Conditional Variables ( C++11 onwards )

  • مکانیسم انتظار مشغول Busy waiting mechanism

  • متغیرهای شرطی در سی پلاس پلاس مدرن Conditional Variables in modern C++

  • لغو تعاونی با استفاده از متغیرهای شرطی (با استفاده از C++20) Co-operative cancellation using conditional variables (using C++20 )

  • آزمون متغیرهای شرطی Conditional Variables Quiz

سمافور (C++20 به بعد) Semaphore ( C++20 onwards )

  • مقدمه ای بر Semphores (از C++20) Introduction to Semphores (since C++20)

  • توابع عضو std::smaphore (از C++ 20) Member functions of std::semaphore (since C++ 20)

  • استفاده از سمافورها در برنامه های ساخته شده با C++20 Using semaphores in programs built with C++20

  • مسابقه سمپهورها Sempahores Quiz

اتمی (C++11 به بعد) Atomics ( C++11 onwards )

  • مبانی اتمی Basics of Atomics

  • اپراتورهای بیش از حد با اتمی Overloaded operators with atomics

  • هنگام استفاده از اضافه بارهای اتمی احتیاط می شود Cautions while using atomic overloads

  • توابع عضو اتم ها Member functions of atomics

  • آزمون اپراتورها Operators Quiz

  • توابع عضو بیشتر اتم ها More member functions of atomics

  • خلاصه و توصیه در حین کار با اتم Summary and advice while working with atomics

الگوریتم های موازی (از C++17) Parallel Algorithms ( since C++17)

  • مقدمه ای بر الگوریتم های موازی Introduction to parallel algorithms

  • سیاست های اجرایی برای الگوریتم های موازی (C++17 و C++20) Execution policies for parallel algorithms ( C++17 and C++20 )

  • الگوریتم های موازی آزمایشی سریع با استفاده از همزمانی Quick demo parallel algorithms using concurrency

کوروتین ها (همانطور که در C++20 ارسال شده است) Coroutines ( as shipped in C++20)

  • لغو مسئولیت Coroutines Disclaimer

  • مسابقه کوروتین Coroutines Quiz

  • نمودار جریان اصلی کنترل کوروتین ها در C++20 Basic flow diagram of control of coroutines in C++20

  • توابع عضو ساختار کار روال مشترک در C++20 ارسال شده است Member functions of co-routines task structure shipped in C++20

  • فلوچارت اجرای کوروتین ها با استفاده از API موجود در C++20 Flowchart of coroutines execution using the API availble in C++20

سخنان پایانی Closing remarks

  • کتابخانه های شخص ثالث (قابل استفاده با C++ 11، C++14، C++17، C++20) Third party libraries ( can be used with C++ 11, C++14, C++17, C++20 )

  • نتیجه Conclusion

  • [سخنرانی پاداش] [Bonus Lecture]

نمایش نظرات

آموزش همزمانی در C++ مدرن : Crash Course (از جمله C++20)
جزییات دوره
2 hours
49
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
310
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Subodh Chiwate Subodh Chiwate

برنامه نویس، امور مالی شخصی، فناوری

من Subodh (36) هستم، یک برنامه نویس با MS در مهندسی برق و مقیم هند.

من روی پروژه‌هایی در حوزه‌های متعددی مانند بیمه، ایمیل، سیستم‌های تعبیه‌شده برای پزشکی از راه دور، توزیع سینمای دیجیتال، سیستم‌های توزیع‌شده، و ساختن نقشه کار کرده‌ام.

از کاوش در ارتباط بین چگونه و چرا در مورد هر مشکل فنی لذت می برم. در طول سالها متوجه شده ام که تحقیق یک سبک زندگی است و مهندسی یک نگرش است.

من از ایجاد محتوا و ویرایش ویدیو همراه با مطالعه مرتبط با تجارت، امور مالی شخصی، اقتصاد، بیوگرافی، تاریخ و برنامه نویسی/مهندسی نرم افزار لذت می برم.

ایده ها و پیشنهادات شما همیشه مورد استقبال قرار می گیرد.