آموزش Multithreading Java و MasterClass برنامه نویسی موازی - آخرین آپدیت

دانلود Java Multithreading and Parallel Programming Masterclass

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: یاد بگیرید چند رشته ای از راه درست در یک راهنمای کامل و گام به گام درک کنید که چرا Multithreading یک مزیت واقعی برای هر توسعه دهنده جاوا است که بلوک های اصلی ساخت و ساز برنامه های چند رشته ای را درک می کند درک می کند که چند رشته ای می تواند برنامه را سرعت بخشد و چه زمانی نمی تواند درک کند سیستم عامل و پیامدهای سخت افزاری یک برنامه چند رشته ای قادر به دیدن نمونه های مرتبط و مرتبط با آن است که عمیقاً توضیح داده شده است ، برای هر مفهومی که ارائه می شود قادر به اتصال مفاهیم آموخته شده در این دوره با پروژه های دنیای واقعی است: پیش nیaزha: java basic دانش OOP (کلاس ها ، رابط ها ، روش ها) Java 15 (JDK) نصب Community Intellij Idea (ارجحیت) یا هر جاوا IDE نصب شده

مقدمه

این دوره بهترین منبع آنلاین است که شما باید در کار با موضوعات مهارت داشته باشید و به درستی تکنیک های چند رشته ای را در برنامه های خود اعمال کنید تا از قابلیت های CPU دستگاه های خود استفاده کنید و از توان استفاده کنید.

هدف از این دوره این است که شما را به طور عمیق درک مفاهیم چند رشته ای (که می تواند در بسیاری از زبان های دیگر مورد استفاده مجدد قرار گیرد) ، که در جاوا استفاده و نمونه ای از آنها استفاده می شود ، زبان استفاده شده و نمونه ای از شرکتهای بزرگ و بیش از 9 میلیون توسعه دهنده در سراسر جهان است. .

در مورد خودم

من 10 سال پیش وقتی در دبیرستان بودم ، اولین خط کد خود را نوشتم. من به سرعت معتاد شدم که چقدر می توانید با استفاده از فرم های C# و ویندوز برنامه های مفیدی بسازم. ، سیستم عامل ها ، چند رشته ای ، محاسبات توزیع شده ، شبکه سازی و بسیاری از موضوعات دیگر) ، و من این مسیر یادگیری 6 ساله شگفت انگیز را با گرفتن یک مدرک کارشناسی در حال اجرا شغلی. من کدی را که توسط میلیون ها نفر از مردم در سراسر جهان استفاده می شود ، می سازم.


Why I built this course?

multithreading یک موضوع پیشرفته برای هر توسعه دهنده است. من بسیاری از افراد را دیدم که در حال درک چیزهایی مانند:

هستند
  • چگونه می توانم زمان اجرای این کد را سرعت بخشم؟

  • آیا می توان این مشکل را به چند قطعه مستقل تقسیم کرد؟

  • چگونه می توانم عملکرد این کد را اندازه گیری کنم؟

  • چرا کد چند رشته ای من گیر کرده است؟ چگونه می توانم آن را اشکال زدایی کنم؟

درک برخی از آن چیزها برای من نیز واقعاً سخت بود ، حتی اگر من در این زمینه سابقه دانشگاه کافی داشته باشم.

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

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


این دوره به طور مداوم با اطلاعات جدید در قسمت multithreading به روز می شود ، اما همچنین با مباحث مربوطه ای که در بخش Q درخواست می کنید ، بنابراین شما در حال خرید یک دارایی یادگیری واقعی هستید ، زیرا می توانید از این دوره استفاده کنید یک مرجع فنی.


دوره محتوا چیست؟

این دوره به چندین فصل تقسیم می شود ، هر یک موضوع اصلی را در چند رشته ای قرار می دهد:

  • فصل 1 - مفاهیم عمومی چند رشته ای

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

  • فصل 2 - مدیریت موضوع

    • این اولین فصل دستی است که در آن می خواهیم یاد بگیریم که چگونه موضوعات ایجاد کنیم ، نحوه استفاده از گروه های نخ ، موضوعات Daemon ، بلکه نحوه ساخت جریان کنترل استثنا ، برای جلوگیری از تصادفات به دلیل استثنائات نامشخص./P>

  • فصل 3 - همگام سازی موضوع - قسمت 1

    • این فصل هنگام کار با چندین موضوع ، به چالش اصلی می رود ، که همگام سازی موضوع است به طوری که ما یک خروجی قابل پیش بینی از برنامه خود دریافت می کنیم و از رفتارهای متناقض خودداری می کنیم.

    • ما می خواهیم ابزارهای اصلی همگام سازی را بیاموزیم - قفل ها ، مجموعه های منتظر و اعلان ها ، خواندن قفل ها و semahores نوشتن

  • فصل 4 - همگام سازی موضوع - قسمت 2

    • این فصل ادامه مورد قبلی است ، جایی که ما می خواهیم با ابزارهای همگام سازی پیشرفته مانند موانع و فازها مقابله کنیم ، اما ما همچنین می خواهیم با استفاده از کلمه کلیدی فرار ، در مورد بن بست و اجرای انسجام حافظه پنهان بیاموزیم. .

  • فصل 5 - قابلیت استفاده مجدد از موضوع

    • ما نمی توانیم تعداد نامحدودی از موضوعات را در برنامه های خود ایجاد کنیم ، زیرا هر موضوع برای ایجاد منابع به برخی منابع نیاز دارد ، بنابراین به همین دلیل باید از موضوعات استفاده مجدد کنیم.

    • این فصل ابزارهایی را که در جاوا داریم برای مقابله با قابلیت استفاده مجدد از موضوع (استخرهای نخ) توصیف می کند و به نحوه کار با آنها می رود ، مدیریت عملکرد ، انتخاب پارامترهای مناسب (تنظیم) و بسیاری دیگر.

  • فصل 6 - الگوریتم های موازی

    • در این فصل می خواهیم ببینیم که چگونه می توانیم زمان اجرای یک زن و شوهر از الگوریتم های شناخته شده را از طریق چند رشته ای بهبود بخشیم.

    • ما می خواهیم روند تفکر شکستن یک مشکل را به چند قطعه که می توانند به صورت موازی پردازش شوند ، بیاموزیم و در نهایت ادغام نتایج برای به دست آوردن خروجی اصلی.

  • فصل 7 - مشکلات معروف چند رشته ای

    • اولین مراحل در زمینه چند رشته ای سالها پیش انجام شده است ، جایی که دانشمندان مشهور رایانه با مشکلاتی روبرو شده اند که بخشی از API Threading Java است.

    • در این فصل ، ما قصد داریم چند مورد از این مشکلات را مطالعه کنیم و روند فکر راه حل آنها را بدست آوریم. این تمرین بسیار با ارزش است و به درک کلی موازی و هماهنگ سازی کمک می کند.

  • فصل 8 - چند رشته ای در دنیای واقعی

    • این فصل آخر این دوره با اتصال بین چند رشته ای و چارچوب های گسترده استفاده شده ، مانند Spring-Boot ، Javarx و Javafx مقابله می کند. ما می خواهیم ببینیم که چگونه می توانیم یک API REST را در Boot Spring طراحی کنیم ، که درخواست ها را به روشی ناهمزمان پردازش می کند و از چندتایی استفاده می کند.

    • ما می خواهیم ببینیم که چگونه می توانیم جریان داده های موازی را با Javarx2 بسازیم ، و همچنین چگونه می توان به روزرسانی های UI را از پردازش پس زمینه در Javafx جدا کرد ، که از نظر فنی در مورد برنامه های تلفن همراه و دسک تاپ اعمال می شود.


الزامات این دوره چیست؟

  • دانش اساسی جاوا (از جمله برنامه نویسی با هدف)

  • ایده ای از انتخاب شما ، در حالت ایده آل Intellij Ideo Community Edition ، اما می توانید از هر IDE استفاده کنید که در آن می توانید کد جاوا ساده را اجرا کنید

  • تمایل به یادگیری و یک ذهن باز


از شما متشکرم که وقت خود را برای جستجوی این توضیحات وقت گذاشتید و من مشتاقانه منتظر دیدن شما در اولین سخنرانی هستم!


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

مقدمه Introduction

  • انگیزه Motivation

  • چگونه از این دوره بیشترین استفاده را کنیم How to take the most out of this course

  • پیش نیازهای دوره و منابع کد Course Prerequisites & Code Resources

مفاهیم چند رشته ای عمومی General Multithreading Concepts

  • فرآیند چیست؟ What is a Process?

  • موضوع چیست؟ What is a Thread?

  • موضوعات در مقابل فرآیندها Threads vs Processes

  • موازی در مقابل همزمان در مقابل ناهمزمان در مقابل غیر مسدود کننده Parallel vs Concurrent vs Asynchronous vs Non-Blocking

  • قانون Amdahl Amdahl's Law

  • [مسابقه] - مفاهیم عمومی چند رشته ای [Quiz] - General Multithreading Concepts

مدیریت نخ Thread Management

  • ایجاد موضوع Thread Creation

  • اولویت ها و ایالت های موضوع Thread Priorities and States

  • بیایید با گروه های نخ بازی کنیم Let's play with Thread Groups

  • موضوعات Daemon و موضوعات کاربر Daemon Threads and User Threads

  • رسیدگی به استثناء موضوع Thread Exception Handling

  • متغیرهای محلی و شرایط مسابقه Thread Local Variables and Race Conditions

  • [پروژه] - پردازش فایل متنی موازی [Project] - Parallel Text File Processing

همگام سازی موضوع - قسمت 1 Thread Synchronization - Part 1

  • همگام سازی موضوع چیست؟ What is Thread Synchronization?

  • کلمه کلیدی هماهنگ The Synchronized keyword

  • مجموعه ها و اعلان های انتظار (مصرف کننده تولید کننده) Wait Sets and Notifications (Producer Consumer)

  • درک قفل با جمع بردار موازی Understanding Locks with Parallel Vector Sum

  • قفل های Readwrite و قفل های چرخش چیست؟ What are ReadWrite locks and Spin Locks?

  • مصرف کننده تولید کننده با متغیرهای شرایط Producer Consumer with Condition Variables

  • بیایید مشاغل را با semaphores همزمان کنیم Let's Synchronize Jobs with Semaphores

  • متغیرهای اتمی The Atomic Variables

  • آیا می توانید وضعیت مسابقه را حل کنید؟ Can you solve the Race Condition?

همگام سازی موضوع - قسمت 2 Thread Synchronization - Part 2

  • جستجوی آرایه موازی با شمارش معکوس Parallel Array Search with CountDownLatch

  • ماتریس های خرد کننده با موانع Crushing Matrixes with Barriers

  • پردازش آرایه موازی با فاز Parallel Array Processing with Phasers

  • تغییر داده ها بین موضوعات با مبدل Shift data between threads with Exchangers

  • بن بست چیست و چگونه می توانیم از آن جلوگیری کنیم؟ What is a Deadlock and how can we avoid it?

  • کلمه کلیدی فرار The Volatile Keyword

  • [پروژه] - شبیه سازی کار MapReduce با موضوعات - قسمت 1 [Project] - Simulating a MapReduce Job with Threads - Part 1

  • [پروژه] - شبیه سازی کار MapReduce با موضوعات - قسمت 2 [Project] - Simulating a MapReduce Job with Threads - Part 2

  • مقادیر فن خارج در مجموعه ای از موضوعات Fan-out values in a set of threads

قابلیت استفاده مجدد از موضوع Thread Reusability

  • چرا باید از موضوعات استفاده مجدد کنیم؟ Why we should reuse threads?

  • معرفی کلاس Threadpoolextoror Introducing the ThreadPoolExecutor class

  • صف کار برای نخ های نخ Work queues for ThreadPools

  • رسیدگی به استثنائات در Threadpools Handling exceptions in ThreadPools

  • مدیریت وظایف رد شده در یک موضوع Managing rejected tasks in a ThreadPool

  • نظارت بر عملکرد یک موضوع Monitoring the Performance of a ThreadPool

  • برنامه ریزی وظایف با برنامه ریزی threadpoolextoror Scheduling tasks with ScheduledThreadPoolExecutor

  • بیایید با Forkjoinpools بازی کنیم Let's play with ForkJoinPools

  • ایجاد استخرهای نخ با مجریان Creating Thread Pools with Executors

  • چگونه می توان یک استخر نخ را به درستی اندازه داد؟ How to properly size a Thread Pool?

الگوریتم های موازی Parallel Algorithms

  • آوردن موازی به مرتب سازی سریع Bringing parallelism to Quick Sort

  • آیا می توانیم جستجوی باینری را از طریق چند رشته ای بهبود بخشیم؟ Can we improve Binary Search through Multithreading?

  • ضرب ماتریس موازی - روش ساده لوحانه Parallel Matrix Multiplication - The naive way

  • ضرب ماتریس موازی - روش بهینه Parallel Matrix Multiplication - The optimal way

مشکلات معروف چند رشته ای Famous Multithreading Problems

  • مشکل فیلسوفان ناهار خوری Dining Philosophers Problem

  • مشکل خوانندگان نویسندگان Readers-Writers Problem

  • مشکل آرایشگر خواب Sleeping Barber Problem

  • مشکل mutex no-starve No-Starve Mutex Problem

چند رشته در دنیای واقعی Multithreading in Real World

  • چگونه می توانیم ببینیم چه اتفاقی در JVM می افتد؟ How can we see what's happening inside a JVM?

  • معرفی چارچوب بوت بهار (به طور خلاصه) Introducing Spring Boot Framework (in a nutshell)

  • اجرای بارهای ناهمزمان در بوت بهار Running Asynchronous Workloads on Spring Boot

  • معرفی چارچوب rxjava (به طور خلاصه) Introducing RxJava framework (in a nutshell)

  • ساخت خطوط لوله داده موازی با rxjava2 Building Parallel Data Pipelines with RxJava2

  • انسداد UI از طریق multithreading (با javafx) Unblocking the UI through Multithreading (with JavaFX)

یادداشت های بسته شدن Closing Notes

  • پیوندها به منابع Links to resources

نمایش نظرات

آموزش Multithreading Java و MasterClass برنامه نویسی موازی
جزییات دوره
9 hours
56
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
704
4.7 از 5
ندارد
دارد
دارد
Cosmin Ionita
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Cosmin Ionita Cosmin Ionita

مهندس ارشد نرم افزار

من Cosmin هستم، یک مهندس نرم افزار با بیش از 10 سال تجربه در توسعه برنامه های کاربردی درجه سازمانی، مستقر در بخارست، رومانی.

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

تخصص من حول برنامه‌های مبتنی بر JVM و سیستم‌ها/تکنیک‌های اطراف برای مدیریت کانتینر، گردش‌های کاری استقرار، نظارت و هشدار، بهینه‌سازی عملکرد، کیفیت کد، کارایی منابع و بسیاری موارد دیگر می‌چرخد.

من قویاً معتقدم که یادگیری مداوم تنها راه برای مرتبط ماندن در صنعت مهندسی نرم افزار است، و برای من، آموزش راهی برای یادگیری بیشتر در مورد موضوعات مختلف است و در عین حال به سایر افراد کمک می کند تا آنها را به روشی آسان درک کنند.

در اوقات فراغت از نواختن پیانو لذت می برم :-)