ریال 490,000

خرید دانلودی بسته ی آموزش ویدئویی Concurrent Collection ها (کالکشن های همروند) در سی شارپ

توضیحات

بسته ی آموزش ویدئویی Concurrent Collection ها (کالکشن های همروند) در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی آموزش کالکشن های همروند در سی شارپ است که با نام اصلی C# Concurrent Collections شرکت Pluralsight منتشر شده است.

Collection ها در سی شارپ

به منظور استفاده و مدیریت از گروهای از اشیا در برنامه های دات نت می توان آرایه ای از اشیا و یا Collection ی از اشیا را ساخت. کاربرد آرایه ها بیشتر در کار کردن با تعداد مشخصی از اشیا می باشد که همگی از یک نوع یکسان هستند. به عبارت دیگر آرایه ها در دات نت Strongly Typed هستند.

از طرف دیگر، Collection ها در کار کردن با مجموعه هایی که تعداد اعضای آنها به صورت پویا کم و یا زیاد می شود استفاده می گردند. علاوه بر این، در بعضی از Collection ها، می توان به هر عنصری کلیدی اختصاص داد که با استفاده از آن کلید، عنصر مورد نظر را سریعاً بازیابی کرد. باید بگوییم که یک Collection در اصل یک کلاس می باشد. بنابراین، برای استفاده از آنها باید یک شی از کلاس مورد نظر را ساخت.

اگر مجموعه ای که قصد کار کردن با آن را دارید شامل عناصری می شود که همگی از یک جنس هستند می توانید از کلاس هایی که در System.Collections.Generic می باشند استفاده کنید. Collection هایی که جنریک هستند به ما امکان اضافه کردن اشیا غیرهمجنس را به مجموعه نمی دهند. علاوه بر این، در زمان بازیابی عنصری از این مجموعه ها نیازی به تشخیص نوع آن عنصر نیست.

Concurrent Collection ها در سی شارپ

در دات نت فریم ورک 4 یک namespace با نام System.Collections.Concurrent معرفی شد که حاوی کلاس های کالکشنی می باشد که نه تنها Thread-safe هستند بلکه مقیاس پذیری بالایی نیز دارند. به عبارت دیگر در برنامه نویسی همروند چندین Thread می توانند بدون نگرانی از بوجود آمدن مشکلات مربوط به برنامه های همروند از قبیل شرایط Race اقدام به درج عناصر در این کلاس ها و حذف عناصر از درون آنها کنند. این موضوع نیازی به Thread Synchronization اضافی در کد شما ندارد. در زمان برنامه نویسی همروند، زمانی که می دانیم چندین Thread با یک کالکشن از داده ها به صورت همزمان کار خواهند کرد و عناصری را در آن درج و از خواهند خواند استفاده از این نوع کلاس های کالکشنی توصیه می شود.

رجوع به این بسته در سایت Pluralsight

ویدئوی معرفی به علت قرار داشتن بر روی سایت آپارات از کیفیت بالایی برخوردار نیست. این موضوع در مورد ویدئوهای خریداری شده که بر روی سرور سایت قرار داده شده اند صدق نمی کند.

دانلود دموی آموزش Concurrent Collection ها (کالکشن های همروند) در سی شارپ

عناوین فصل های آموزش Concurrent Collection ها (کالکشن های همروند) در سی شارپ

فصل اول: معرفی کالکشن های همروند

  • مقدمه ی دوره ی آموزشی
  • مقدمه
  • معرفی برنامه ی نمونه: The Geek Clothing Company
  • چند نخی (Multithreaded) کردن Queue
  • رفع مشکل برنامه با کلاس جنریک ConcurrentQueue
  • دلیل شکست مدت Enqueue از کلاس جنریک Queue
  • متدهای Atomic
  • چرا استفاده از قفل (lock) ها همیشه مناسب نیست
  • کالکشن های همروند همیشه از قفل ها استفاده نمی کنند
  • کالکشن های همروند و شرایط Race
  • انوع کالکشن های همروند
  • اینترفیس جنریک IProducerConsumerCollection و کلاس جنریک BlockingCollection
  • کلاس جنریک Partitioner و کلاس جنریک OrderablePartitioner
  • جمع بندی

فصل دوم: معرفی کلاس ConcurrentDictionary

  • مقدمه
  • عملیات اصلی Dictionary ها
  • تبدیل کردن به ConcurrentDictionary
  • چرا متد Add از کلاس ConcurrentDictionary مخفی است
  • تعدادی از متدهای Thread-safe
  • الگوی متدهای TryXXX و متد TryGetValue
  • متد TryAdd
  • متد TryRemove
  • متد TryUpdate
  • مشکل TryUpdate
  • متد AddOrUpdate
  • چالش بوجود آمدن شرایط Race
  • هر عملیات را در یک فراخوان متد تک انجام دهید
  • متد GetOrAdd
  • جمع بندی

فصل سوم: تمرین عملی با کلاس ConcurrentDictionary

  • مقدمه
  • معرفی مثال BuyAndSell
  • الگوریتم Buy-Sell
  • استفاده از AddOrUpdate برای به روز رسانی Concurrent Dictionary
  • استفاده از Interlock.Add برای به روز رسانی متغیر Total
  • متدهای Thread-safe بدون استفاده از قفل
  • چرا نمی توانیم از TryUpdate استفاده کنیم
  • به روز رسانی شرطی Concurrent Dictionary
  • اعمال شرط توسط Lambda در متد AddOrUpdate
  • چالش مربوط به عوارض جانی متدها (Side-effect ها)
  • متد AddOrUpdate و اجتناب از منطق های شرطی
  • جمع زدن مقادیر Concurrent Dictionary با استفاده از LINQ
  • استفاده از متد GetOrAdd برای نمایش مقادیر
  • تست کردن برنامه ی مثال در شرایط دشوار
  • جمع بندی

فصل چهارم: کالکشن های Producer-Consumer از قبیل Queue ،Stack و Bag

  • مقدمه
  • مروری بر Queue
  •  معرفی کلاس جنریک ConcurrentQueue
  • معرفی کلاس جنریک ConcurrentStack
  •  معرفی کلاس جنریک ConcurrentBag
  • سناریوهای Producer-Consumer (تولید کننده – مصرف کننده) کدامند؟
  • اینترفیس جنریک IProducerConsumerCollection
  • جمع بندی

فصل پنجم: تمرین عملی با کالکشن های Producer-Consumer و BlockingCollection

  • مقدمه
  • معرفی برنامه ی مثال SalesBonuses
  • Log کردن اشیا Trade به یک Queue
  • درج عناصر در Concurrent Queue
  • حلقه ی مصرف کننده: نظارت بر Concurrent Queue
  • جریان اصلی برنامه
  • محاسبه ی Bonus ها
  • چالش Polling
  • معرفی کلاس جنریک BlockingCollection
  • استفاده از متد Take از کلاس جنریک BlockingCollection برای جلوگیری از Polling
  • ارتباط کلاس جنریک BlockingCollection و اینترفیس IProducerConsumerCollection
  • قابلیت های دیگر کلاس جنریک BlockingCollection
  • جمع بندی

فصل ششم: بعضی از Best Practice های کار کردن با Concurrent Collection ها

  • مقدمه
  • کالکشن های همروند و مسئله ی Performance
  • بنچ مارک کردن کلاس ConcurrentDictionary با چندین Thread
  • دسترسی پراکنده به Shared State
  • کلاس ConcurrentDictionary از قفل های دانه ریز استفاده می کند
  • متد IsEmpty و پروپرتی Count در ConcurrentDictionary عملکرد بدی دارد
  • از اتکا به State یک ConcurrentDictionary خودداری کنید
  • Enumerate کردن و تغییر در یک کالکشن معمولی
  • Enumerate کردن و تغییر در یک کالکشن همروند
  • چه هنگان استفاده از کالکشن های همروند توصیه می شود؟
  • جمع بندی
  • جمع بندی بسته ی آموزشی

نقد و بررسی ها

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

اولین کسی باشید که دیدگاهی می نویسد “بسته ی آموزش ویدئویی Concurrent Collection ها (کالکشن های همروند) در سی شارپ”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *