Masterclass Java Multithreading and Parallel Programming Masterclass [ویدئو]

Java Multithreading and Parallel Programming Masterclass [Video]

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: Multithreading یک موضوع پیشرفته برای هر توسعه دهنده ای است و آنها برای درک بسیاری از مفاهیم مرتبط با آن تلاش می کنند. هدف در اینجا درک عمیق مفاهیم چند رشته ای است که در جاوا به کار گرفته شده و به عنوان مثال مطرح شده است. این دوره با مبانی چند رشته ای - رشته ها، فرآیندها، همزمانی و موازی سازی شروع می شود. سپس مفاهیم مدیریت رشته را مرور خواهید کرد. پس از آن، شما در مورد همگام‌سازی رشته‌ها آشنا می‌شوید و به ابزارهای همگام‌سازی مانند قفل‌ها، مجموعه‌های انتظار و اعلان‌ها، خواندن و نوشتن قفل‌ها و سمافورها، موانع و فازرها و بن‌بست‌ها و اجرای هماهنگی حافظه پنهان نگاه می‌کنید. در مرحله بعد، ابزارهایی را در جاوا برای مقابله با قابلیت استفاده مجدد نخ، مدیریت عملکرد، انتخاب پارامترهای مناسب (تنظیم) و بسیاری موارد دیگر بررسی خواهید کرد. در مرحله بعد، نحوه بهبود زمان اجرای چند الگوریتم شناخته شده را از طریق چند رشته ای خواهید دید. پس از آن، برای درک موازی و همگام سازی، چند مشکل و راه حل آنها را در Java Threading API مطالعه خواهید کرد. در نهایت، به ارتباط بین چند رشته ای و فریمورک های پرکاربرد مانند Spring Boot، JavaRx و JavaFX نگاه خواهید کرد. در پایان این دوره، چند رشته ای را با جزئیات درک خواهید کرد، تجربه عملی در جاوا کسب خواهید کرد و یاد خواهید گرفت که عملکرد برنامه را با چند رشته ای بهبود ببخشید. تمام فایل های منبع به مخزن GitHub در آدرس زیر اضافه می شوند: https://github.com/PacktPublishing/Java-Multithreading-and-Parallel-Programming-Masterclass درک کنید که چرا multithreading یک مزیت واقعی برای هر توسعه دهنده جاوا است. بلوک های اصلی برنامه های کاربردی چند رشته ای را درک کنید بیاموزید که چه زمانی چند رشته ای می تواند سرعت برنامه را افزایش دهد و چه زمانی نمی تواند به سیستم عامل و پیامدهای سخت افزاری یک برنامه چند رشته ای نگاه کنید مفاهیم آموخته شده را با پروژه های دنیای واقعی به کار بگیرید و به هم متصل کنید ارتباط بین چند رشته ای و فریم ورک های پرکاربرد را مشاهده کنید این دوره برای توسعه دهندگان مبتدی جاوا که می خواهند مهارت های خود را با یادگیری درست برنامه نویسی چند رشته ای و موازی تقویت کنند ایده آل است. هر توسعه‌دهنده‌ای با دانش پایه جاوا (از جمله برنامه‌نویسی شی‌گرا)، که می‌خواهد عملکرد برنامه‌های خود را با استفاده از برنامه‌نویسی موازی بهبود بخشد، و می‌خواهد چند رشته‌ای را از ابتدا یاد بگیرد، می‌تواند از این دوره چیزهای زیادی کسب کند. دانش پایه Java OOP (کلاس‌ها، رابط‌ها، روش‌ها)، IntelliJ IDEA و Java 15 (JDK) تنها موارد لازم برای شروع هستند. یک دوره کاملاً تعریف شده در مورد چند رشته ای با تمام منابع و مواد لازم * سخنرانی های عملی و جذاب بصری همراه با پروژه ها و ارتباطات دنیای واقعی * مشاهده نمونه های مرتبط و بسیار کاربردی و هر موضوع از ابتدا توضیح داده شده است.

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

مقدمه دوره Introduction to the Course

  • بررسی اجمالی دوره Course Overview

  • چگونه از این دوره بیشترین بهره را ببرید How to Get the Most Out of This Course

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

مفاهیم کلی چند رشته ای General Multithreading Concepts

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

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

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

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

  • قانون امدال Amdahl's Law

مدیریت موضوع Thread Management

  • ایجاد تاپیک Thread Creation

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

  • بیایید با گروه های موضوعی بازی کنیم Let's Play with Thread Groups

  • موضوعات شبح و موضوعات کاربر 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

  • قفل خواندن/نوشتن و قفل چرخشی چیست؟ What Are Read/Write locks and Spin Locks?

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

  • بیایید مشاغل را با سمافورها همگام کنیم Let's Synchronize Jobs with Semaphores

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

  • جستجوی آرایه موازی با CountDownLatch 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

قابلیت استفاده مجدد نخ Thread Reusability

  • چرا باید از موضوعات استفاده مجدد کنیم Why We Should Reuse Threads

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

  • صف های کاری برای ThreadPools Work Queues for ThreadPools

  • رسیدگی به استثناها در ThreadPools Handling Exceptions in ThreadPools

  • مدیریت وظایف رد شده در یک ThreadPool Managing Rejected Tasks in a ThreadPool

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

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

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

  • ایجاد Thread Pool با مجریان Creating Thread Pools with Executors

  • چگونه یک استخر نخ را به درستی اندازه کنیم How to Properly Size a Thread Pool

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

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

  • آیا می‌توانیم جستجوی باینری را از طریق Multithreading بهبود دهیم؟ 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

  • مشکل موتکس بدون گرسنگی No-Starve Mutex Problem

Multithreading در دنیای واقعی Multithreading in the Real World

  • چگونه می توانیم ببینیم که در داخل JVM چه اتفاقی می افتد؟ How Can We See What's Happening Inside a JVM?

  • معرفی Framework Boot Spring (به طور خلاصه) Introducing Spring Boot Framework (In a Nutshell)

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

  • معرفی چارچوب RxJava (به طور خلاصه) Introducing RxJava Framework (In a Nutshell)

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

  • رفع انسداد رابط کاربری از طریق Multithreading (با JavaFX) Unblocking the UI Through Multithreading (With JavaFX)

نمایش نظرات

Masterclass Java Multithreading and Parallel Programming Masterclass [ویدئو]
جزییات دوره
9 h 7 m
54
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
Cosmin Ionita
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Cosmin Ionita Cosmin Ionita

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

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

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

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

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

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