آموزش استفاده از همزمانی و چند رشته ای در الگوهای رایج جاوا

Applying Concurrency and Multi-threading to Common Java Patterns

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره: اگر می خواهید برنامه های جاوا چند موضوعی بنویسید ، این دوره برای شما مناسب است. شما در مورد مشکلات برنامه نویسی همزمان در پردازنده چند هسته ای و به اشتراک گذاری کاذب یاد خواهید گرفت. همچنین شما با مدل حافظه جاوا آشنا خواهید شد. هر توسعه دهنده باید بداند چگونه برنامه های چند رشته ای را در جاوا بنویسد. این دوره ، استفاده از همزمانی و چند رشته ای در الگوهای رایج جاوا ، ارائه دقیق کلیه اصول اساسی شما است. شما درباره مشکلات اصلی برنامه نویسی همزمان در CPU چند هسته ای ، از جمله شرایط مسابقه ، همگام سازی ، قفل مجدد ورودی و بن بست یاد خواهید گرفت. در مرحله بعدی ، نحوه انتقال کاربرد برنامه شما از حافظه اصلی به حافظه نهان پردازنده و نحوه به اشتراک گذاری کاذب را پوشش خواهید داد. سرانجام ، شما با مدل حافظه جاوا و مفهوم اتفاق قبل روبرو می شوید. با پایان این دوره ، شما خواهید فهمید که همزمان و چند رشته ای چگونه بر روی انواع الگوهای جاوا کار می کند و شما قادر خواهید بود از این دانش برای ایجاد برنامه های بهتر استفاده کنید.

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

درک همزمانی ، موضوع و همگام سازی Understanding Concurrency, Threading, and Synchronization

  • مقدمه: در این دوره چه چیزی می خواهید یاد بگیرید؟ Introduction: What Are You Going to Learn in This Course?

  • دستور کار: برای دنبال کردن این دوره چه چیزی باید بدانید؟ Agenda: What Should You Know to Follow This Course?

  • تعریف یک موضوع ، موضوع موجود در جاوا Definition of a Thread, Existing Thread in Java

  • منظور از انجام همزمان وظایف چیست؟ What Does It Mean for Tasks to Happen at the Same Time?

  • اتفاق همزمان در پردازنده چند هسته ای Happening at the Same Time on Multicore CPU

  • به اشتراک گذاری زمان پردازنده با استفاده از یک برنامه ریز موضوع CPU Time Sharing Using a Thread Scheduler

  • شرایط مسابقه در برنامه نویسی همزمان چیست؟ What Is a Race Condition in Concurrent Programming?

  • تجزیه و تحلیل شرایط مسابقه در الگوی Singleton Analysis of a Race Condition in the Singleton Pattern

  • همگام سازی کد برای جلوگیری از شرایط مسابقه Synchronizing Code to Prevent Race Conditions

  • درک موضوع قفل در همگام سازی Understanding the Lock Object in Synchronization

  • درک همگام سازی با چندین روش Understanding Synchronization Over Multiple Methods

  • قفل بازپرداخت کننده چیست؟ What Is a Reentrant Lock?

  • بن بست چیست؟ What Is a Deadlock?

  • مرور سریع الگوی قابل اجرا برای راه اندازی موضوعات Quick Overview of the Runnable Pattern to Launch Threads

  • کدگذاری زنده: راه اندازی اولین موضوع شما Live Coding: Launching Your First Thread

  • کدگذاری زنده: شرایط مسابقه در عمل و نحوه رفع آن Live Coding: A Race Condition in Action, and How to Fix It

  • برنامه نویسی زنده: یک اقدام Lockin مرده و نحوه رفع آن Live Coding: A Dead Lockin Action, and How to Fix It

  • بسته بندی ماژول Wrap-up of the Module

پیاده سازی الگوی تولید کننده/مصرف کننده با استفاده از Wait/Notify Implementing the Producer/Consumer Pattern Using Wait / Notify

  • مقدمه: دستور کار ماژول Introduction: Agenda of the Module

  • راه اندازی یک کار در یک موضوع جدید با الگوی قابل اجرا Launching a Task in a New Thread with the Runnable Pattern

  • نحوه متوقف کردن موضوع با استفاده از روش وقفه () How to Stop a Thread Using the interrupt() Method

  • پیاده سازی اولین تولید کننده/نمونه مصرف کننده Implementing a First Producer/Consumer Example

  • اولین نسخه همگام سازی تولید کننده/مصرف کننده A First Synchronized Version of the Producer/Consumer

  • چه مواردی برای رفع این نسخه ناقص اول لازم است What Is Needed to Fix This First, Flawed Version

  • درک نحوه کارکرد روش های انتظار () و اطلاع رسانی () Understanding How the wait() and notify() Methods Work

  • اصلاح کد تولید کننده/مصرف کننده با استفاده از Wait/Notify Fixing the Producer / Consumer Code Using Wait / Notify

  • درک نحوه همگام سازی با انتظار () و اطلاع رسانی () Understanding How Synchronization Works with wait() and notify()

  • کدگذاری زنده: تولید کننده/مصرف کننده ناسازگار ، ناقص در عمل Live Coding: Unsynchronized, Flawed Producer/Consumer in Action

  • برنامه نویسی زنده: تولید کننده/مصرف کننده همزمان ، ناقص در عمل Live Coding: Synchronized, Flawed Producer/Consumer in Action

  • برنامه نویسی زنده: صبر کنید/اطلاع دهید ، تهیه کننده/مصرف کننده صحیح در عمل Live Coding: wait/notify, Correct Producer/Consumer in Action

  • درک وضعیتهای یک موضوع Understanding the States of a Thread

  • درک نمودار حالت یک موضوع Understanding the State Diagram of a Thread

  • جمع کردن وضعیت یک موضوع Wrap-up on the State of a Thread

  • بسته بندی ماژول Wrap-up of the Module

سفارش عملیات خواندن و نوشتن روی پردازنده مرکزی چند هسته ای Ordering Read and Writes Operations on a Multicore CPU

  • مقدمه: دستور کار ماژول Introduction: Agenda of the Module

  • مقدمه ای بر قابلیت مشاهده: بازگشت به پرونده تولید کننده/مصرف کننده ما Introduction to Visibility: Back to Our Producer/Consumer Case

  • سازمان حافظه پنهان در پردازنده های چند هسته ای Organization of Caches on Multicore CPUs

  • تعریف قابلیت مشاهده بر روی پردازنده های چند هسته ای Definition of Visibility on Multicore CPUs

  • درک اینکه چرا پیوند قبل از وقوع بسیار مهم است Understanding Why the Happens-before Link Is So Important

  • تعریف پیوند Happens-before از مدل حافظه جاوا Definition of the Happens-before Link from the Java Memory Model

  • درک پیوند اتفاقات قبل از مثالهای اساسی Understanding the Happens-before Link on Basic Examples

  • درک پیوند اتفاقات قبل از مثال پیچیده Understanding the Happens-before Link on a Complex Example

  • همگام سازی و نوسانات در متغیرهای مشترک Synchronization and Volatility on Shared Variables

  • درک False Sharing در پردازنده های چند هسته ای Understanding False Sharing on Multicore CPUs

  • اشتراک نادرست چگونه می تواند بر عملکرد برنامه ها تأثیر بگذارد How False Sharing Can Impact the Performance of Applications

  • کدگذاری زنده: تنظیم یک مثال ساده برای مشاهده اشتراک گذاری کاذب Live Coding: Setting up a Simple Example to Observe False Sharing

  • کدگذاری زنده: مشاهده اشتراک گذاری کاذب با یک مثال ساده Live Coding: Observing False Sharing on a Simple Example

  • بسته بندی ماژول Wrap-up of the Module

پیاده سازی Thread Safe Singleton در پردازنده چند هسته ای Implementing a Thread Safe Singleton on a Multicore CPU

  • مقدمه: دستور کار ماژول Introduction: Agenda of the Module

  • اولین اجرای الگوی Singleton A First Implementation of the Singleton Pattern

  • شناسایی شرایط مسابقه در این اولین اجرای Identifying the Race Condition in This First Implementation

  • رفع شرایط مسابقه با استفاده از همگام سازی ساده لوحانه Fixing the Race Condition Using Naive Synchronization

  • تجزیه و تحلیل عملکرد در یک CPU تک هسته ای Analyzing the Performance on a Single Core CPU

  • تجزیه و تحلیل عملکرد در CPU دو هسته ای Analyzing the Performance on a Two Core CPU

  • درک مسئله عملکرد Singleton همگام سازی شده Understanding the Performance Issue of the Synchronized Singleton

  • رفع شرایط مسابقه با استفاده از قفل کردن دوبار چک Fixing the Race Condition Using Double Check Locking

  • درک اشکال همزمان در Double Check Locking Understanding the Concurrent Bug in the Double Check Locking

  • مشکلات احتمالی با قفل کردن دوبار چک Possible Issues with the Double Check Locking

  • اصلاح شرایط مسابقه به روش صحیح: استفاده از شمارش Fixing the Race Condition the Right Way: Using Enumeration

  • کدگذاری زنده: سعی در حل مثال LongWrapper با فرار Live Coding: Trying to Fix the LongWrapper Example with Volatile

  • کدگذاری زنده: رفع مثال LongWrapper با همگام سازی Live Coding: Fixing the LongWrapper Example with Synchronization

  • برنامه نویسی زنده: ارائه مطالعه موردی Java Puzzler LockMess Live Coding: Presenting the Java Puzzler LockMess Case Study

  • کدگذاری زنده: تجزیه و تحلیل اشکال در مطالعه موردی LockMess Live Coding: Analyzing the Bug in the LockMess Case Study

  • کدگذاری زنده: رفع اشکال در مطالعه موردی LockMess Live Coding: Fixing the Bug in the LockMess Case Study

  • نحوه نوشتن خلاصه کد همزمان How to Write Correct Concurrent Code Wrap-up

  • جمع بندی دوره و تشکر از شما! Course Wrap-up and Thanks!

نمایش نظرات

آموزش استفاده از همزمانی و چند رشته ای در الگوهای رایج جاوا
جزییات دوره
2h 39m
66
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
457
4.8 از 5
دارد
دارد
دارد
Jose Paumard
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Jose Paumard Jose Paumard

خوزه با علاقه بیش از 20 سال در مورد برنامه نویسی رایانه ها ، اولین بار در مونتاژ و C ، C برای ماشین های موازی SIMD قبل از استفاده از جاوا به عنوان یک زبان شی گرا ، برای بسیاری از عمده ترین برنامه های مدرن ضروری بود. او تخصص و ظرفیت خود را برای تجزیه و تحلیل و ترکیب در بسیاری از پروژه ها ، عمدتا در لایه های پایین تر ، نزدیک به داده ها ، بلکه همچنین در مورد طراحی پیچیده رابط کاربر یا مرورگر ، به ارمغان می آورد. دکترای ریاضیات کاربردی و علوم کامپیوتر ، استادیار دانشگاه پاریس نور به مدت 15 سال ، خوزه همچنین اشتیاق زیادی به آموزش و انتقال دانش دارد. او برای هزاران نفر از توسعه دهندگان فرانسوی زبان در سراسر جهان ، وبلاگ ، جاوا le soir ، منبع مستند فرانسه در مورد فن آوری های جاوا می نویسد. وی عضوی از گروه کاربران فرانسوی جاوا در پاریس و از سازمان دهندگان کنفرانس Devoxx France است.