آموزش بررسی عمیق Java SE: برنامه‌نویسی هم‌روند با Virtual Threads - آخرین آپدیت

دانلود Java SE Deep Dive: Concurrent Programming with Virtual Threads

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: طراحی یک سیستم واکنش‌گرا (Reactive) مبتنی بر callback پیچیده است و منجر به کدهایی می‌شود که تست، دیباگ و نگهداری آن‌ها در بلندمدت دشوار و هزینه‌بر است. در این دوره آموزشی با عنوان «بررسی عمیق Java SE: برنامه‌نویسی هم‌روند با Virtual Threads»، شما یاد می‌گیرید که چگونه از راهکارهای مبتنی بر Virtual Threads برای غلبه بر این مشکلات استفاده کنید و به گونه‌ای عمل کنید که کدهای ساده، دستوری (Imperative) و مسدودکننده (Blocking) شما، به بهترین راهکار برای طراحی سیستم‌های واکنش‌گرا تبدیل شوند. ابتدا بررسی خواهید کرد که Virtual Threads در جاوا چگونه کار می‌کنند تا بتوانید تصمیمات آگاهانه‌ای در مورد محل استفاده از آن‌ها در برنامه خود بگیرید. سپس با مفهوم Structured Concurrency برای طراحی سیستم‌های واکنش‌گرا جهت کوئری گرفتن از چندین سرور با استراتژی‌های مختلف آشنا می‌شوید. در نهایت، نحوه استفاده از Scoped Values را برای مدیریت مواردی مانند امنیت خواهید آموخت. پس از اتمام این دوره، قادر خواهید بود برنامه‌های خود را با استفاده از Virtual Threads، Structured Concurrency و Scoped Values ارتقا دهید تا قابلیت نگهداری کدهای واکنش‌گرا و ناهمگام (Asynchronous) خود را بهبود ببخشید.

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

بهبود برنامه‌نویسی واکنش‌گرا با Virtual Threads Improving Reactive Programming with Virtual Threads

  • معرفی Virtual Threads Introducing Virtual Threads

  • چرا استفاده از Virtual Threads در مقابل برنامه‌نویسی واکنش‌گرا؟ Why Using Virtual Threads vs. Reactive Programming?

  • نحوه پذیرش Virtual Threads توسط فریم‌ورک‌ها How Frameworks Are Adopting Virtual Threads

  • تعریف نرخ تراکنش (Throughput) در یک اپلیکیشن Defining the Throughput of an Application

  • نوشتن کد همگام (Synchronous) در مقابل کد ناهمگام (Asynchronous) Writing Synchronous Code vs. Asynchronous Code

  • اجرای کدهای هم‌روند (Concurrent) Executing Concurrent Code

  • مفهوم مسدودکننده (Blocking) بودن کد چیست؟ What Does It Mean for Your Code to Be Blocking?

  • تحلیل عملکرد یک درخواست (Request) Analyzing the Performance of a Request

  • ارسال درخواست‌های هم‌روند برای به حداکثر رساندن استفاده از CPU Sending Concurrent Requests to Maximize Your CPU Usage

  • مدیریت یک میلیون درخواست هم‌روند Managing One Million Concurrent Requests

  • دموی زنده: مقایسه کدهای دستوری، هم‌روند و واکنش‌گرا Live Demo: Comparing the Imperative, Concurrent and Reactive Code

  • دموی زنده: مدیریت تایم‌اوت‌ها (Timeouts) Live Demo: Dealing with Timeouts

  • دموی زنده: مدیریت استثناها (Exceptions) در تسک‌ها Live Demo: Dealing with Exceptions in Your Tasks

معرفی Virtual Threads برای افزایش نرخ تراکنش Introducing Virtual Threads to Increase Your Throughput

  • ساخت مدل جدیدی از Threadها Building a New Model of Threads

  • دموی زنده: ایجاد و اجرای اولین Virtual Threadها Live Demo: Creating and Running Your First Virtual Threads

  • اجرای یک Virtual Thread روی یک Carrier Thread Running a Virtual Thread on a Carrier Thread

  • دموی زنده: ایجاد و مسدود کردن یک میلیون Virtual Thread Live Demo: Creating and Blocking a Million Virtual Threads

  • دموی زنده: تعداد Platform Threadهای مورد نیاز برای اجرای Virtual Threads Live Demo: How Many Platform Threads to Run Virtual Threads

  • دموی زنده: بررسی API داخلی Continuation Live Demo: Exploring the Internal Continuation API

  • دموی زنده: Continuation در عمل Live Demo: Continuation in Action

  • اجرای یک تسک مسدودکننده در Virtual Thread با استفاده از Continuation Executing a Blocking Task in a Virtual Thread with a Continuation

  • ذخیره‌سازی استک‌های Virtual Threads در حافظه Heap Storing Virtual Threads Stacks in the Heap Memory

  • پین کردن (Pinning) یک Virtual Thread روی Carrier Thread آن Pinning a Virtual Thread on Its Carrier Thread

  • مقایسه Virtual Threads و برنامه‌نویسی واکنش‌گرا Comparing Virtual Threads and Reactive Programming

  • مقایسه مدل‌های برنامه‌نویسی Comparing Programming Models

معرفی Structured Concurrency Introducing Structured Concurrency

  • معرفی Structured Concurrency Introducing Structured Concurrency

  • حذف Gotoها در برنامه‌نویسی هم‌روند Getting Rid of Gotos in Concurrency

  • دموی زنده: ایجاد اولین StructuredTaskScope Live Demo: Creating a First StructuredTaskScope

  • دموی زنده: تحلیل نتایج زیر-تسک‌ها (Subtasks) Live Demo: Analyzing the Subtask Results

  • دموی زنده: تحلیل استثناها Live Demo: Analyzing the Exceptions

  • دموی زنده: استفاده از Joiner برای دریافت اولین نتیجه تولید شده Live Demo: Using a Joiner to Get the First Result Produced

  • دموی زنده: مدیریت استثناها در Scope پیش‌فرض Live Demo: Managing Exceptions in the Default Scope

  • دموی زنده: تحلیل نتایج و استثناها با استفاده از Stream Live Demo: Analyzing the Results and the Exceptions with a Stream

  • دموی زنده: استفاده از AwaitAll Joiner برای دریافت تمامی نتایج Live Demo: Using the AwaitAll Joiner to Get All the Results

  • دموی زنده: تنظیم تایم‌اوت با استفاده از شیء Configuration Live Demo: Setting up a Timeout with the Configuration Object

  • دموی زنده: استفاده از تسک‌های قابل لغو (Cancellable) Live Demo: Using Cancellable Tasks

استفاده از Joinerها برای شخصی‌سازی Structured Concurrency Using Joiners to Customize Structured Concurrency

  • معرفی Joinerها برای شخصی‌سازی استراتژی‌های StructuredTaskScope Introducing Joiners to Customize StructuredTaskScope Strategies

  • دموی زنده: تعیین انواع صحیح برای Joinerها Live Demo: Setting the Right Types for Your Joiners

  • دموی زنده: یافتن ارزان‌ترین پرواز Live Demo: Getting the Cheapest Flight

  • انشعاب (Forking) یک تسک با StructuredTaskScope Forking a Task with a StructuredTaskScope

  • تکمیل تسک‌ها و تولید نتیجه Completing Tasks and Producing a Result

  • لغو یک Scope از طریق Callback Cancelling a Scope From a Callback

  • طراحی تسک‌های قابل قطع (Interruptible) Designing Interruptible Tasks

  • دموی زنده: ایجاد یک Joiner برای دریافت بهترین قیمت Live Demo: Creating a Joiner to Get the Best Price

  • دموی زنده: مدیریت استثناها با استفاده از Joiner Live Demo: Dealing with Exceptions with a Joiner

  • دموی زنده: انتخاب بین onFork() و onComplete() Live Demo: Choosing Between onFork() and onComplete()

  • دموی زنده: ساخت یک صفحه سفر Live Demo: Building a Travel Page

  • لغو Scopeها و Scopeهای ایجاد شده توسط Virtual Threadهای آن‌ها Cancelling Scopes and Scopes Created by its Virtual Threads

  • طراحی مسئولیت‌های Joinerها Designing the Responsibilities of Joiners

استفاده از Scoped Values به جای ThreadLocals Using Scoped Values Instead of ThreadLocals

  • معرفی Scoped Values برای جایگزینی متغیرهای ThreadLocal Introducing Scoped Values to Replace ThreadLocal Variables

  • دموی زنده: ایجاد، اتصال (Binding) و خواندن Scoped Values Live Demo: Creating, Binding, and Reading Scoped Values

  • دموی زنده: خواندن Scoped Values از تردهای دیگر Live Demo: Reading Scoped Values From Other Threads

  • دموی زنده: خواندن Scoped Values از StructuredTaskScopes Live Demo: Reading Scoped Values From StructuredTaskScopes

  • دموی زنده: مشاهده Scoped Values در عمل Live Demo: Seeing Scoped Values in Action

  • جمع‌بندی نهایی دوره Wrapping up the Course

نمایش نظرات

آموزش بررسی عمیق Java SE: برنامه‌نویسی هم‌روند با Virtual Threads
جزییات دوره
2h 27m
55
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
6
از 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 است.