آموزش الگوهای پیشرفته همزمان جاوا

Advanced Java Concurrent Patterns

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره: تسلط بر همزبانی یک موضوع سخت است. این دوره جاوا شما را از اصول اولیه ای که قبلاً می دانید (قابل اجرا و همگام سازی) به سطح بعدی می برد: java.util.concurrent API. همه را بزرگ کنید بررسی اجمالی دوره 1m 46s معرفی الگوی مجری ، آینده ها و تماس گیرنده ها 41m 51s استفاده از قفلها و سمافورها برای الگوی تولید کننده/مصرف کننده 52 متر 14 ثانیه کنترل برنامه های همزمان با استفاده از موانع و چفت 29m 50s درک پوشش و متغیرهای اتمی 29 متر 30 ساله استفاده از مجموعه های همزمان برای ساده سازی طراحی برنامه 53 متر 21s علائم تجاری و نام تجاری اشخاص ثالث ذکر شده در این دوره متعلق به صاحبان مربوطه می باشند و Pluralsight وابسته یا تأیید شده توسط این احزاب نیست.

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

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

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

معرفی الگوی مجری ، آینده ها و تماس گیرنده ها Introducing the Executor Pattern, Futures and Callables

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

  • برای ادامه این دوره چه چیزی باید بدانید؟ What Do You Need to Know to Follow This Course?

  • معرفی مجریان ، الگوی قابل اجرا چه مشکلی دارد؟ Introducing Executors, What Is Wrong with the Runnable Pattern?

  • تعریف الگوی مجری: الگویی جدید برای راه اندازی موضوعات Defining the Executor Pattern: A New Pattern to Launch Threads

  • تعریف الگوی خدمات مجری ، اولین مثال ساده Defining the Executor Service Pattern, a First Simple Example

  • مقایسه الگوی خدمات قابل اجرا و مجری Comparing the Runnable and the Executor Service Patterns

  • درک صف انتظار از سرویس مجری Understanding the Waiting Queue of the Executor Service

  • بسته بندی الگوی خدمات مجری Wrapping-up the Executor Service Pattern

  • از قابل اجرا به قابل تماس: Runnable چه مشکلی دارد؟ From Runnable to Callable: What Is Wrong with Runnables?

  • تعریف مدل جدید برای کارهایی که اشیا را برمی گرداند Defining a New Model for Tasks That Return Objects

  • معرفی رابط قابل فراخوانی به Tasks Model Introducing the Callable Interface to Model Tasks

  • معرفی شی Fut آینده برای انتقال اشیا Bet بین رشته ها Introducing the Future Object to Transmit Objects Between Threads

  • بسته بندی تماس های تلفنی و آینده ، مدیریت موارد استثنایی Wrapping-up Callables and Futures, Handling Exceptions

  • برنامه نویسی زنده: مقدمه ، قابل اجرا Live Coding: Introduction, Runnable in Action

  • کدگذاری زنده: مجری و قابل تماس ، نحوه خاموش کردن مجری Live Coding: Executor and Callables, How to Shut Down an Executor

  • برنامه نویسی زنده: استفاده از آینده برای کنترل وقت تلفنی Live Coding: Using Futures to Handle Time Out

  • کدگذاری زنده: مدیریت موارد استثنایی در موارد قابل تماس با آینده Live Coding: Handling Exceptions in Callables with Futures

  • بسته بندی کامل برنامه نویسی Live Coding Wrap-up

  • مجریان بسته بندی: خدمات مجری مجرد ، ثابت و ذخیره شده Wrapping-up Executors: Single, Fixed, and Cached ExecutorServices

  • بسته بندی مجریان: Scheduled ExecutorService Wrapping-up Executors: Scheduled ExecutorService

  • خاموش کردن یک ExecutorService: الگوها و استراتژی ها Shutting Down an ExecutorService: Patterns and Strategies

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

استفاده از قفلها و سمافورها برای الگوی تولید کننده/مصرف کننده Using Locks and Semaphores for the Producer / Consumer Pattern

  • مقدمه ، دستور کار ماژول Introduction, Module Agenda

  • قفل کردن و همگام سازی ذاتی چه مشکلی دارد؟ What Is Wrong with Intrinsic Locking and Synchronization?

  • معرفی API Locking با رابط قفل Introducing API Locking with the Lock Interface

  • تفاوت بین همگام سازی و قفل کردن API Differences Between Synchronization and API Locking

  • الگوهای قفل: خرید قفل قابل قطع شدن Lock Patterns: Interruptible Lock Acquisition

  • الگوهای قفل: به دست آوردن قفل به موقع Lock Patterns: Timed Lock Acquisition

  • الگوهای قفل: خرید قفل منصفانه Lock Patterns: Fair Lock Acquisition

  • بسته بندی الگوی قفل Wrapping-up the Lock Pattern

  • الگوی تولید کننده/مصرف کننده: صبر کنید/اجرای را مطلع کنید Producer / Consumer Pattern: Wait / Notify Implementation

  • الگوی تولید کننده/مصرف کننده: اجرای قفل با شرط Producer / Consumer Pattern: Lock Implementation with Condition

  • شی Cond شرط: قطع شدن و انصاف The Condition Object: Interruptibility and Fairness

  • بسته بندی اشیا Lock قفل و شرایط Wrapping-up the Lock and Condition Objects

  • معرفی الگوی ReadWriteLock Introducing the ReadWriteLock Pattern

  • پیاده سازی یک حافظه موقت کارآمد با ReadWriteLock Implementing an Efficient Concurrent Cache with ReadWriteLock

  • بسته بندی الگوی ReadWriteLock Wrapping-up the ReadWriteLock Pattern

  • معرفی الگوی Semaphore ، اولین مثال Introducing the Semaphore Pattern, First Example

  • الگوی Semaphore: قابلیت قطع شدن و خرید به موقع مجوز Semaphore Pattern: Interruptibility and Timed Permit Acquisition

  • بسته بندی الگوی Semaphore ، کنترل رشته های منتظر Wrapping-up the Semaphore Pattern, Control of the Waiting Threads

  • کدگذاری زنده: تهیه کننده/مصرف کننده براساس الگوی قفل Live Coding: Producer / Consumer Based on the Lock Pattern

  • کدگذاری زنده: تنظیم شرایط برای تولید کننده/مصرف کننده Live Coding: Setting up Conditions on the Producer / Consumer

  • کدگذاری زنده: تنظیم تعداد مناسب نخ ها Live Coding: Setting up the Right Number of Threads

  • کدگذاری زنده: مقابله با موارد استثنا با Timeout Live Coding: Dealing with Exceptions with Timeouts

  • کدگذاری زنده: تنظیم Timeout برای باز کردن قفل یک تولید کننده/مصرف کننده Live Coding: Setting up Timeout to Unlock a Producer / Consumer

  • برنامه نویسی زنده: ایجاد حافظه پنهان با شرایط مسابقه در HashMap Live Coding: Creating a Cache with a Race Condition on HashMap

  • کدگذاری زنده: رفع حافظه پنهان HashMap با ReadWriteLock Live Coding: Fixing the HashMap Cache with ReadWriteLock

  • بسته بندی کامل برنامه نویسی Live Coding Wrap-up

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

کنترل برنامه های همزمان با استفاده از موانع و چفت Controlling Concurrent Applications Using Barriers and Latches

  • مقدمه ، دستور کار ماژول Introduction, Module Agenda

  • به اشتراک گذاری یک کار در میان موضوعات و ادغام نتایج Sharing a Task Among Threads and Merging the Results

  • مشکل همگام سازی در پایان کارها The Problem of Synchronizing on the End of Tasks

  • ایجاد وظایف قابل تماس و ایجاد مانع Creating Callable Tasks and Setting up a Barrier

  • درک الگوی CyclicBarrier Understanding the CyclicBarrier Pattern

  • تنظیم الگوی کامل CyclicBarrier و راه اندازی وظایف Setting up the Full CyclicBarrier Pattern and Launching Tasks

  • منتظر مانع با وقت خاموش ، کنار آمدن با استثنا Waiting for the Barrier with a Time out, Dealing with Exception

  • بسته بندی CyclicBarrier Wrapping-up the CyclicBarrier

  • معرفی Latch ، سدی که نمی تواند دوباره تنظیم شود Introducing the Latch, a Barrier That Cannot Be Reset

  • درک الگوی CountDownLatch Understanding the CountDownLatch Pattern

  • CountDownLatch در عمل برای شروع یک برنامه A CountDownLatch in Action to Start an Application

  • بسته بندی الگوی CountDownLatch Wrapping-up the CountDownLatch Pattern

  • کدگذاری زنده: یک مانع حلقه ای با وظیفه پاسخگویی در عمل Live Coding: A CyclicBarrier with a Callback Task in Action

  • کدگذاری زنده: راه اندازی ExecutorService ، با استفاده از TimeOut Live Coding: Setting up the ExecutorService, Using TimeOut

  • کدگذاری زنده: استفاده از Future TimeOut و لغو کار Live Coding: Using Future TimeOut and Task Cancellation

  • بسته بندی کامل برنامه نویسی Live Coding Wrap-up

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

درک پوشش و متغیرهای اتمی Understanding Casing and Atomic Variables

  • مقدمه ، دستور کار ماژول Introduction, Module Agenda

  • درک پوشش: آیا ما همیشه به همگام سازی نیاز داریم؟ Understanding Casing: Do We Always Need Synchronization?

  • درک پوشش: نمونه ای از همزمانی کاذب Understanding Casing: An Example of False Concurrency

  • درک پوشش: چگونه کار می کند؟ Understanding Casing: How Does It Work?

  • نحوه استفاده از کلاس AtomicLong و نحوه عملکرد آن How to Use the AtomicLong Class and How Does It Work

  • Java Atomic API: کلاس AtomicBoolean The Java Atomic API: The AtomicBoolean Class

  • Java Atomic API: کلاسهای AtomicInteger و AtomicLong The Java Atomic API: The AtomicInteger and AtomicLong Classes

  • Java Atomic API: کلاس AtomicReference The Java Atomic API: The AtomicReference Class

  • پیچیدن اشیا At اتمی Wrapping-up the Atomic Objects

  • درک جمع کننده ها و جمع کننده ها Understanding Adders and Accumulators

  • مرور از طریق Adder and Accumulator API Browsing Through the Adder and Accumulator API

  • کدگذاری زنده: اصلاح شرایط مسابقه در یک پیشخوان ساده Live Coding: Fixing a Race Condition on a Simple Counter

  • برنامه نویسی زنده: شمارش تعداد تلاش های مجدد در AtomicInteger Live Coding: Counting the Number of Retries in an AtomicInteger

  • بسته بندی کامل برنامه نویسی Live Coding Wrap-up

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

استفاده از مجموعه های همزمان برای ساده سازی طراحی برنامه Leveraging Concurrent Collections to Simplify Application Design

  • مقدمه ، دستور کار ماژول Introduction, Module Agenda

  • اجرای همزمانی در سطح API Implementing Concurrency at the API Level

  • سلسله مراتب مجموعه و نقشه ، رابط های همزمان Hierarchy of Collection and Map, Concurrent Interfaces

  • همزمان بودن یک رابط به چه معناست؟ What Does It Mean for an Interface to Be Concurrent?

  • چرا باید از بردارها و پشته ها خودداری کنید Why You Should Avoid Vectors and Stacks

  • درک کپی در نوشتن آرایه ها Understanding Copy On Write Arrays

  • بسته بندی CopyOnWriteArrayList Wrapping up CopyOnWriteArrayList

  • معرفی صف و Deque ، و پیاده سازی آنها Introducing Queue and Deque, and Their Implementations

  • درک نحوه کار صف در یک محیط همزمان Understanding How Queue Works in a Concurrent Environment

  • افزودن عناصر به صف کامل: چگونه ممکن است شکست بخورد؟ Adding Elements to a Queue That Is Full: How Can It Fail?

  • درک نحوه مدیریت خطا در صف و Deque Understanding Error Handling in Queue and Deque

  • بسته بندی صف ، Deque و نسخه های مسدود کننده آنها Wrapping up Queue, Deque, and Their Blocking Versions

  • معرفی نقشه های همزمان و پیاده سازی آنها Introducing Concurrent Maps and Their Implementations

  • عملیات اتمی تعریف شده توسط رابط ConcurrentMap Atomic Operations Defined by the ConcurrentMap Interface

  • درک همزمانی برای HashMap Understanding Concurrency for a HashMap

  • درک ساختار ConcurrentHashMap از جاوا 7 Understanding the Structure of the ConcurrentHashMap from Java 7

  • معرفی Java 8 ConcurrentHashMap و روشهای موازی آن Introducing the Java 8 ConcurrentHashMap and Its Parallel Methods

  • جستجوی موازی در Java 8 ConcurrentHashMap Parallel Search on a Java 8 ConcurrentHashMap

  • نقشه موازی/کاهش در Java 8 ConcurrentHashMap Parallel Map / Reduce on a Java 8 ConcurrentHashMap

  • موازی برای هر یک در Java 8 ConcurrentHashMap Parallel ForEach on a Java 8 ConcurrentHashMap

  • ایجاد یک مجموعه همزمان در Java 8 ConcurrentHashMap Creating a Concurrent Set on a Java 8 ConcurrentHashMap

  • بسته بندی Java 8 ConcurrentHashMap Wrapping up the Java 8 ConcurrentHashMap

  • معرفی لیست های پرش برای پیاده سازی ConcurrentMap Introducing Skip Lists to Implement ConcurrentMap

  • درک چگونگی بهبود لیست های پیوند یافته توسط لیست های رد شده Understanding How Linked Lists Can Be Improved by Skip Lists

  • جمع آوری ساختار Skip Skip Wrapping up the Skip List Structure

  • چگونه می توان بدون همگام سازی لیست پرش را همزمان انجام داد How to Make a Skip List Concurrent Without Synchronization

  • بسته بندی ConcurrentSkipList Wrapping up ConcurrentSkipList

  • کدگذاری زنده: تهیه کننده/مصرف کننده ساخته شده بر روی ArrayBlockingQueue Live Coding: Producer / Consumer Built on an ArrayBlockingQueue

  • برنامه نویسی زنده: کاهش موازی در عمل در یک نقشه همزمان Live Coding: Parallel Reduce in Action on a ConcurrentHashMap

  • برنامه نویسی زنده: جستجوی موازی در عمل در یک نقشه همزمان Live Coding: Parallel Search in Action on a ConcurrentHashMap

  • کدگذاری زنده: محاسبه میانگین در یک نقشه ConcurrentHashMap Live Coding: Computing an Average on a ConcurrentHashMap

  • بسته بندی کامل برنامه نویسی Live Coding Wrap-up

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

  • جمع بندی دوره Course Wrap-up

نمایش نظرات

آموزش الگوهای پیشرفته همزمان جاوا
جزییات دوره
3h 28m
116
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
153
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 است.