پرووید
منو

آموزش برنامه نویسی چند نخی با Task Parallel Library در سی شارپ

زبان: فارسی (دوبله شده)مترجم: پروویددوبلر: پروویدسطح: پیشرفتهمدت زمان: 01:46:10تعداد ویدئوها: 18فایل های پروژه: ناموجود
قیمت:۲٬۸۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش سی شارپ (#C) پیشرفته است که می توانید از تمامی آموزش های آن دیدن کنید.

آموزش برنامه نویسی چند نخی با Task Parallel Library در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی برنامه نویسی چند نخی با Task Parallel Library در سی شارپ است که با نام اصلی Building Multithreaded C# Applications with the Task Parallel Library از شرکت Pluralsight منتشر شده است.

استفاده از Thread ها و Threading

با NET. می توانید برنامه هایی را بنویسید که چندین عملیات را همزمان بر روی thread های جداگانه اجرا کنید. فرآیندی که به عنوان multithreading یا free threading شناخته می شود.

Multithreaded Programming in C# - نمونه ای از بخش Getting Started with Parallel Programming and Multithreading in C# در آموزش برنامه نویسی چند نخی با Task Parallel Library در سی شارپ
نمونه ای از بخش «Getting Started with Parallel Programming and Multithreading in C#» در آموزش برنامه نویسی چند نخی با Task Parallel Library در سی شارپ

برنامه های کاربردی که از multithreading استفاده می کنند بیشتر به ورودی کاربر پاسخ می دهند زیرا interface همچنان فعال است. تکنیک multithreading هنگام ایجاد برنامه های مقیاس پذیر نیز مفید است زیرا با افزایش حجم کار می توانید thread ها را اضافه کنید.

ایجاد و راه اندازی یک Thread جدید

شما با ایجاد یک thread جدید از System.Threading.Thread نام متدی را که می خواهید در یک thread جدید اجرا کنید به تابع constructor ارائه می دهید. برای راه اندازی یک thread ایجاد شده متد Thread.Start را فراخوانی خواهید کرد. برای خاتمه اجرای یک thread از System.Threading.CancellationToken استفاده کنید.

Working with Shared Variables - نمونه ای از بخش Advanced Parallel Programming- Understanding Locking, Shared Variables and Best Practices در آموزش برنامه نویسی چند نخی با Task Parallel Library در سی شارپ
نمونه ای از بخش «Advanced Parallel Programming- Understanding Locking, Shared Variables and Best Practices» در آموزش برنامه نویسی چند نخی با Task Parallel Library در سی شارپ

این کلاس یک روش یکسان را برای متوقف کردن thread ها در اختیار ما قرار می دهد. البته گاهی اوقات نمی توان یک thread را به صورت مشترک متوقف کرد. در این مورد، ممکن است بخواهید اجرای آن thread را به اجبار پایان دهید. برای پایان اجباری یک thread در .NET Framework می توانید از متد Thread.Abort استفاده کنید. فقط دقت کنید که متد Thread.Abort در .NET Core پشتیبانی نمی شود.

بررسی Property های کلاس Thread

  • IsAlive: اگر thread شروع شده و هنوز به طور عادی خاتمه نیافته یا لغو شده باشد مقدار true را برمی گرداند.
  • IsBackground: یک Boolean است که نشان می دهد که یک thread در پس زمینه است یا خیر. background thread ها مانند foreground thread ها هستند، اما یک background thread مانع توقف یک فرایند نمی شود. وقتی همه foreground thread که متعلق به یک فرآیند هستند متوقف شوند، سیستم language runtime با فراخوانی متد Abort در background thread ها که هنوز alive هستند، آن فرایند را به پایان می رساند.
  • Name: نام یک thread را مشخص می کند. این پروپرتی اغلب برای کشف thread های جداگانه هنگام debug استفاده می شود.
  • Priority: مقدار ThreadPriority را مشخص می کند و توسط سیستم عامل برای اولویت بندی برنامه ریزی thread استفاده می شود.
  • ThreadState: مقدار ThreadState حالت فعلی یک thread را بر می گرداند.

اجرای عملیات هم‌زمان با Task Parallel Library و PLINQ

در برنامه‌هایی که باید حجم زیادی از داده را پردازش کنند، تقسیم کار میان چند عملیات موازی می‌تواند به استفاده بهتر از منابع پردازشی کمک کند. این آموزش نحوه حل یک مسئله به‌صورت موازی در C# را بررسی می‌کند و نشان می‌دهد چگونه می‌توان از قابلیت‌های `Task Parallel Library` برای اجرای عملیات مستقل استفاده کرد. همچنین، ترکیب برنامه‌نویسی موازی و ناهمزمان مطرح می‌شود تا تفاوت هدف این دو رویکرد روشن‌تر شود. این مباحث به شما کمک می‌کنند هنگام طراحی عملیات سنگین، انتخاب کنید کدام بخش‌ها قابلیت اجرای موازی دارند و چگونه باید نتایج آن‌ها را مدیریت کرد.

برای پردازش مجموعه‌های داده، آموزش به `Parallel LINQ` یا `PLINQ` می‌پردازد که امکان اجرای موازی برخی پرس‌وجوهای LINQ را فراهم می‌کند. با این روش می‌توانید مجموعه‌ای از داده‌ها را با عملیات فیلتر، تبدیل یا پردازش مناسب بررسی کنید، البته موازی‌سازی همیشه به معنی سریع‌تر شدن برنامه نیست و به اندازه داده و نوع عملیات بستگی دارد. آموزش همچنین مدیریت Exceptionها و لغو عملیات موازی را پوشش می‌دهد. این موضوعات برای ساخت پردازش‌هایی اهمیت دارند که باید هنگام بروز خطا یا تغییر نیاز برنامه، نتیجه و وضعیت اجرای کارها را به‌درستی مدیریت کنند.

جلوگیری از Race Condition و Deadlock در برنامه‌های چندنخی

وقتی چند عملیات به یک متغیر مشترک دسترسی دارند، اجرای هم‌زمان آن‌ها می‌تواند باعث ایجاد نتیجه‌های غیرقابل‌پیش‌بینی شود. این آموزش به کار با متغیرهای مشترک، عملیات `Atomic` و قفل‌گذاری می‌پردازد تا بتوانید خطر تداخل میان عملیات موازی را بهتر بشناسید. برای مثال، اگر چند Task هم‌زمان یک مقدار مشترک را تغییر دهند، بدون هماهنگی مناسب ممکن است نتیجه نهایی با انتظار برنامه متفاوت باشد. آشنایی با این مسائل به شما کمک می‌کند پیش از افزودن موازی‌سازی به یک الگوریتم، وابستگی‌های میان داده‌ها و بخش‌های حساس به ترتیب اجرا را شناسایی کنید.

قفل‌گذاری نیز اگر بدون طراحی مناسب انجام شود، می‌تواند به `Deadlock` منجر شود؛ وضعیتی که در آن عملیات منتظر آزاد شدن منابعی می‌مانند که در اختیار یکدیگر هستند. در این آموزش، خطر قفل‌های تو‌در‌تو و روش‌های مدیریت متغیرهای `ThreadLocal` و `AsyncLocal` بررسی می‌شود. این دو نوع ذخیره‌سازی برای نگهداری داده‌های وابسته به زمینه‌های متفاوت کاربرد دارند، اما رفتار آن‌ها یکسان نیست و باید متناسب با جریان اجرای برنامه انتخاب شوند. شناخت این مفاهیم در کنار اصول موازی‌سازی، به طراحی کدی کمک می‌کند که هم‌زمانی را با کنترل بهتر بر وضعیت مشترک و وابستگی‌های اجرایی پیاده‌سازی می‌کند.

سرفصل مطالب آموزش ویدیویی برنامه نویسی چند نخی با Task Parallel Library در سی شارپ

فصل اول: مقدمه ابن دوره آموزشی

  • مقدمه این دوره آموزشی

فصل دوم: شروع برنامه نویسی موازی و چند نخی در سی شارپ

  • برنامه نویسی چند نخی در سی شارپ
  • حل یک مسئله بصورت موازی
  • اولین عملیات موازی شما
  • استفاده از اصول موازی و ناهمزمان با هم
  • مدیریت Exception ها
  • پردازش مجموعه داده ها به صورت موازی
  • جمع بندی

فصل سوم: برنامه نویسی موازی پیشرفته: یادگیری قفل گذاری، متغیرهای مشترک و بهترین روش ها

  • مفاهیم پیشرفته
  • کار با Variable ها
  • انجام عملیات Atomic
  • بن بست با قفل های تو در تو
  • لغو عملیات موازی
  • بررسی متغیرهای ThreadLocal و AsyncLocal
  • جمع بندی

فصل چهارم: استفاده از LINQ موازی (PLINQ)

  • معرفی LINQ موازی و نحوه استفاده بهینه از آن
  • ایجاد کردن جملات LINQ موازی
  • جمع بندی و نکات پایانی
دیدگاه کاربران

دیدگاه ها

برای ثبت دیدگاه ابتدا وارد حساب کاربری شوید.
هنوز دیدگاهی برای این محصول تایید نشده است.