کالکشنهای همزمان در سی شارپ
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
همزمان کردن اپلیکیشنها میتواند بخشی حیاتی از تضمین واکنشگرایی خوب و عملکرد بالا باشد، اما کالکشنهای استاندارد برای محیطهای همزمان طراحی نشدهاند.
در این دوره، کالکشنهای همزمان در سی شارپ، شما خواهید آموخت چگونه از کالکشنهای همزمان برای بهکارگیری قدرت دستکاری داده در کالکشنها در سناریوهای multithread استفاده کنید و به حل مسائل بهصورت همزمان فکر کنید.
ابتدا، شما یاد خواهید گرفت چگونه از بروز شرایط رقابتی و خرابی داده جلوگیری کنید و چگونه از لامبداها و closureها برای تکمیل عملیاتهای کالکشن همزمان با ایمنی thread استفاده کنید.
سپس، خواهید دید چگونه از کالکشنهای producer-consumer، مانند استکها و صفها استفاده کنید. سپس، یاد خواهید گرفت چگونه بهطور ایمن همهی آیتمها را از یک صف consume کنید، حتی وقتی که نمیدانید آیا threadهای دیگری ممکن است آیتمهای دیگری اضافه کنند یا خیر.
در نهایت، به بهترین شیوههای کدنویسی برای حفظ کارایی کد کالکشنهای همزمان خود خواهید پرداخت.
در پایان این دوره، شما درک خواهید کرد چگونه داده را بهطور ایمن در کالکشنها ذخیره کرده و اجازه دهید چندین thread بهطور همزمان به آن داده دسترسی داشته باشند، در حالی که از باگهای همزمانسازی thread که میتوانند کد همزمان را دچار مشکل کنند، جلوگیری کنید.
کالکشنهای همزمان در سی شارپ
-
بررسی دوره 0:02:00
-
بررسی نسخه 0:00:00
-
بررسی کلی 0:02:00
-
معرفی کد 0:03:00
-
اضافه کردن همزمانی 0:04:00
-
فیکس کردن کد با <ConcurrentQueue<T 0:02:00
-
نتایج ناسازگار 0:02:00
-
توضیح ناسازگاری زمانبندی Thread 0:03:00
-
چرا ()Queue<T>.Enqueue شکست خورد؟ 0:04:00
-
عملیاتهای اتمیک 0:02:00
-
خلاصه 0:01:00
-
بررسی کلی 0:01:00
-
معرفی دموی SellShirts 0:01:00
-
ذخیره تیشرتها در یک ImmutableArray 0:03:00
-
کنترلر موجودی و دیکشنری 0:03:00
-
تولید اعداد تصادفی 0:02:00
-
متد ()Main 0:01:00
-
شبیهسازی ارائه به مشتریان 0:04:00
-
اضافه کردن همزمانی و ConcurrentDictionary 0:03:00
-
ایندکسگذار در مقابل ()TryGetValue 0:03:00
-
فیکس کردن کد برای اجازه به شکست 0:03:00
-
()Remove در مقابل ()TryRemove 0:03:00
-
State کالکشن همزمان میتواند نامشخص باشد 0:03:00
-
خلاصه 0:01:00
-
بررسی کلی 0:01:00
-
معرفی دموی BuyAndSell 0:02:00
-
ذخیره موجودی در یک دیکشنری 0:02:00
-
بروزرسانی یک دیکشنری استاندارد 0:02:00
-
جمعآوری مقادیر با LINQ و بررسی برای خطاها 0:02:00
-
مدلسازی ارائه به مشتری 0:02:00
-
اضافه کردن همزمانی 0:02:00
-
شرایط رقابتی و خرابی داده 0:04:00
-
بروزرسانی اتمیک با ()TryUpdate 0:03:00
-
معرفی ()AddOrUpdate 0:02:00
-
()Interlocked.Add 0:01:00
-
حفاظت در برابر شرایط رقابتی 0:02:00
-
استفاده از لامبداها برای بروزرسانی شرطی دیکشنری 0:03:00
-
حل مشکل بروزرسانی با یک Closure 0:03:00
-
استفاده از ()GetOrAdd برای خواندن دیکشنری 0:02:00
-
خلاصه 0:01:00
-
بررسی کلی 0:02:00
-
اضافه کردن تسکهای لاگ کردن 0:03:00
-
محاسبه کمیسیونها 0:03:00
-
اضافه کردن به صف همزمان 0:02:00
-
Consume کردن صف: مشکل Polling 0:04:00
-
<ConcurrentStack<T 0:02:00
-
<ConcurrentBag<T 0:03:00
-
رابط <IProducerConsumerCollection<T 0:04:00
-
خلاصه 0:01:00
-
بررسی کلی 0:02:00
-
درک <BlockingCollection<T 0:02:00
-
چگونه <BlockingCollection<T از Polling جلوگیری میکند 0:03:00
-
Consuming Enumerable 0:02:00
-
Enumerate کردن مستقیم کار نمیکند 0:01:00
-
خلاصه 0:01:00
-
بررسی کلی 0:01:00
-
کالکشنهای همزمان و عملکرد 0:01:00
-
دموی بنچمارک دیکشنری 0:04:00
-
بنچمارکینگ با چند Thread 0:02:00
-
اجرای بنچمارک 0:03:00
-
از State مشترک بهطور محدود استفاده کنید 0:02:00
-
استفاده صحیح از ConcurrentDictionary 0:02:00
-
مشکل با شمارش 0:03:00
-
وضعیت تجمیع 0:02:00
-
شیوههای خوب برای State 0:02:00
-
خلاصه 0:01:00
-
بررسی کلی 0:01:00
-
Enumerate کردن یک دیکشنری استاندارد 0:03:00
-
Enumerate کردن یک دیکشنری همزمان 0:04:00
-
اجبار به Enumerate کردن اسنپشات 0:02:00
-
مزایا و معایب اسنپشات 0:02:00
-
خلاصه ماژول 0:01:00
-
خلاصه دوره 0:01:00
-
مدلهای تیشرت: متشکرم! 0:02:00
-
چالش شما! 0:01:00
مشخصات آموزش
کالکشنهای همزمان در سی شارپ
- تاریخ به روز رسانی: 1404/06/14
- سطح دوره:پیشرفته
- تعداد درس:75
- مدت زمان :2:42:58
- حجم :496.0MB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy