نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره:
تسلط بر همزبانی یک موضوع سخت است. این دوره جاوا شما را از اصول اولیه ای که قبلاً می دانید (قابل اجرا و همگام سازی) به سطح بعدی می برد: 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
نمایش نظرات