آموزش تسلط بر طراحی ساختار داده همزمان با C++ مدرن

Mastering Concurrent Data Structure Design with Modern C++

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: Concurrency، Multithreading، Data Structures, Lock Free, Design, C++11, C++14, C++17, C++20, Architecture, Code Review طراحی ساختارهای داده همزمان با استفاده از C++ مدرن با استفاده از مدل حافظه C++ برای ساخت قفل ساختارهای داده رایگان استفاده از ویژگی‌های مدرن C++ برای ساخت ساختارهای داده با کارایی بالا مشکلات و چالش‌هایی که باید در طراحی سیستم‌های همزمان با استفاده از C++ اجتناب کرد. نحو پیگیری در وب سایت cppreference و قطعه های آزمایشی به طور مستقل

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

این دوره از دانش آموزان انتظار دارد که کد مورد بحث را به طور مستقل پیاده سازی کنند. این دوره برنامه نویسان خود را شروع می کند و برنامه نویسان ماهر متوسطی را که به نکات ظریف طراحی فراتر از تکالیف کپی پیست علاقه مند هستند.

همزمانی در چشم‌انداز توسعه نرم‌افزار امروزی بسیار مهم است و ایجاد ساختارهای داده‌ای که رشته‌های مختلف بتوانند به طور ایمن و کارآمد به آن دسترسی داشته باشند ضروری است. در این دوره، شما:

  1. مبانی همزمانی و چالش های طراحی ساختارهای داده همزمان را درک کنید.

  2. ساختارهای مختلف داده همزمان را کاوش کنید و مناسب ترین مورد را برای مورد استفاده خود انتخاب کنید.

  3. درباره تکنیک‌ها و مکانیسم‌های همگام‌سازی در C++ برای اطمینان از ایمنی رشته، از جمله mutexes، متغیرهای شرط، و اتمی‌ها بیاموزید.

  4. مدل های مختلف حافظه، طراحی ساختار داده بدون قفل و بدون انتظار، و اصول احیای حافظه و جمع آوری زباله را بدانید.

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

در پایان این دوره، شما به خوبی برای طراحی و پیاده سازی ساختارهای داده همزمان با کارایی بالا در C++ که می توانند در سیستم های چند هسته ای مقیاس شوند و سطوح بالایی از همزمانی را مدیریت کنند، مجهز خواهید شد.

مزایای یادگیری همزمان با C++20 را کشف کنید:

  1. پشتیبانی استاندارد: از ویژگی‌ها و پیشرفت‌های جدید C++20 برای برنامه‌نویسی همزمان، از جمله الگوریتم‌های موازی، عملیات اتمی، و مدل‌های حافظه استفاده کنید.

  2. عملکرد بالا: از قابلیت‌های عملکرد بالای C++ برای ایجاد برنامه‌های همزمان سریع و کارآمد استفاده کنید.

  3. بهبود مدل حافظه: از مدل حافظه جدید C++20 برای استدلال در مورد رفتار برنامه همزمان و جلوگیری از اشکالات ظریف استفاده کنید.

  4. ایمنی نوع پیشرفته: در برنامه‌های همزمان با ویژگی‌هایی مانند کلاس atomic_ref از ایمنی نوع بهبودیافته بهره ببرید.

  5. کاربردهای عملی: رقابت پذیری خود را در بازار کار تقویت کنید و نرم افزاری با کارایی بالا ایجاد کنید که بتواند میزان بالایی از همزمانی را مدیریت کند.

امروز ثبت نام کنید و قدرت برنامه نویسی همزمان با عملکرد بالا را باز کنید!


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

معرفی Introduction

  • معرفی Introduction

  • نمای کلی ویژگی های استاندارد C++ C++98/11/14/17/20/23 C++ standard features overview C++98/11/14/17/20/23

  • بررسی سریع Quick Check

  • قانون امدال در برنامه های همزمان Amdahl's law in concurrent programs

  • زمان استفاده بهینه از همزمانی یا چند رشته ای When to use concurrency or multithreading optimally

  • بررسی سریع Quick Check

اصول طراحی رایگان قفل Lock Free Design fundamentals

  • منتظر concpets رایگان باشید Wait free concpets

  • مفهوم قفل رایگان Lock Free concept

  • مفهوم بدون انسداد Obstruction Free Concept

  • بررسی سریع Quick Check

  • تفکر در معاملاتی مانند ACID Thinking in Transactions like ACID

  • C++ بازنگری سریع معنایی اتمی C++ Atomic semantics quick refresher

  • ملاحظات در هنگام استفاده از اتم های C++ Considerations while using C++ atomics

  • بررسی سریع Quick Check

قفل دوبار چک با C++ مدرن Double Check Locking with modern C++

  • مفهوم به طور خلاصه در یک زمینه رشته ای واحد The concept in a nutshell in a single threaded context

  • اجرای همزمان با استفاده از mutex و atomics با استفاده از استاندارد C++11 Concurrent implementation using mutex and atomics using standard C++11

  • استفاده از Once_flag در C++11 Using once_flag in C++11

  • تمیزترین راه حل شروع همزمان The cleanest concurrent initalization solution

  • قفل، اتمی و طراحی همزمان Locks, atomics and concurrent design

لیست تک پیوندی با استفاده از C++ مدرن Singly Linked List using Modern C++

  • اهداف طراحی Design Goals

  • نمای کلی کلاس با استفاده از ویژگی های مدرن C++ Class overview using Modern C++ features

  • راه اندازی کدهای Constructor، Destructor و Find پیاده سازی Constructor, Destructor and Find implementation code walkthrough

  • بررسی کد تابع push_front push_front function code walkthrough

  • مروری بر کد تابع pop_front pop_front function code walkthrough

مشکل ABA، RCU، نشانگرهای خطر. راه حل های همزمان با استفاده از C ++ مدرن ABA problem, RCU, Hazard pointers. Concurrent Solutions using Modern C++

  • مشکل ABA توضیح داده شد ABA Problem explained

  • مروری بر راه حل های ممکن برای مشکل ABA Overview of possible solutions for ABA problem

  • مروری بر راه حل های مربوط به حذف مشکلات Overview of solutions for deletetion related problems

  • لیست پیوندی منفرد با استفاده از کلاس مرجع و سایر ویژگی های مدرن C++ Singly Linked List using the Reference class and other modern C++ features

  • جزئیات پیاده سازی برای استفاده از کلاس مرجع Implementation details for using the reference class

  • تجزیه و تحلیل همزمانی رویدادهای mutlithreading در کلاس Concurrency analysis of mutlithreading events in the class

  • خواندن، کپی، و به روز رسانی (RCU) اهداف طراحی Read, Copy, and Update (RCU) design goals

  • مثال RCU با طراحی آرایه پویا همزمان با استفاده از C++ مدرن RCU example with concurrent dynamic array design using Modern C++

  • نشانگر خطر Hazard pointer

  • ملاحظات طراحی استخر نخ هنگام استفاده از C++20 یا بالاتر. Thread pool design considerations when using C++20 or higher.

  • کاربرد نظریه در کاربردهای همزمان Apply theory in concurrent applications

ملاحظات طراحی برای ساخت راه حل های چند رشته ای با استفاده از c++ مدرن Design considerations for building multithreading solutions using modern c++

  • پیش فرض های مهم قبل از ادامه مطلب Important assumptions before going further

  • چالش در طراحی همزمان با استفاده از c++ مدرن Challenges in concurrent design using modern c++

  • مشاوره طراحی برای مقابله با چند نخ در تولید Design advice for dealing with multithreading in production

  • نمای کلی معماری همزمان Concurrent architecture overview

چالش های تست و اشکال زدایی با ساختارهای داده همزمان Testing and debugging challenges with concurrent data structures

  • انواع رایج باگ ها در برنامه های چند رشته ای Common types of bugs in multithreaded programs

  • اشکالات مربوط به مسدود کردن ناخواسته Bugs related to unwanted blocking

  • اشکالات مربوط به شرایط مسابقه Bugs releated to Race conditions

  • تکنیک های بررسی کد برای مقابله با چند رشته ای Code review techniques for dealing with multithreading

  • بررسی کد Code review

  • چالش‌های آزمایش کد چند رشته‌ای Challenges in testing multithreaded code

  • طراحی برای آزمایش پذیری Design for testability

  • تکنیک های تست Testing Techniques

نتیجه Conclusion

  • کتابخانه ها، ابزار و سخنان پایانی Libraries, Tool and closing remarks

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

نمایش نظرات

نظری ارسال نشده است.

آموزش تسلط بر طراحی ساختار داده همزمان با C++ مدرن
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
2.5 hours
44
Udemy (یودمی) udemy-small
03 فروردین 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
511
3.1 از 5
ندارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Subodh Chiwate Subodh Chiwate

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

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

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

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

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

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

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

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