نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره:
بیاموزید که از مجموعه های همزمان برای ذخیره داده ها در یک محیط چند رشته ای به طور موثر استفاده کنید ، کد را کارآمد نگه دارید و از خراب شدن داده ها و شرایط نژادی جلوگیری کنید. همزمان ساختن برنامه ها می تواند بخشی حیاتی از اطمینان از پاسخگویی خوب و عملکرد بالا باشد ، اما مجموعه های استاندارد برای همزمان طراحی نشده اند محیط ها در این دوره ، C # Concurrent Collections ، شما می آموزید که چگونه از مجموعه های همزمان استفاده کنید تا با فکر کردن در مورد مشکلات به صورت همزمان ، قدرت دستکاری داده ها در مجموعه ها را به سناریوهای چند رشته ای برسانید. در ابتدا ، خواهید فهمید که چگونه از شرایط نژادی و خراب شدن داده ها جلوگیری کرده و همچنین چگونه می توانید از لامبدا و بسته شدن برای تکمیل عملیات جمع آوری همزمان به روش بی خطر استفاده کنید. در مرحله بعدی ، مجموعه های تولید کننده-مصرف کننده ، مانند دسته ها و صف ها را کشف خواهید کرد. سپس ، هنگامی که نمی دانید ممکن است سایر رشته ها موارد دیگری را اضافه کنند ، یاد خواهید گرفت که چگونه همه موارد را با خیال راحت از یک صف مصرف کنید. سرانجام ، شما برای حفظ کارآیی کد جمع آوری همزمان خود ، به روش های کدنویسی خوبی خواهید پرداخت. در پایان این دوره ، شما می دانید که چگونه با خیال راحت داده ها را در مجموعه ها ذخیره کنید و همزمان چندین رشته با دسترسی به آن داده ها ، ضمن جلوگیری از اشکالات همگام سازی موضوع که در غیر این صورت می توانند کد همزمان را درگیر کنند ، خواهید داشت.
سرفصل ها و درس ها
بررسی اجمالی دوره
Course Overview
-
بررسی اجمالی دوره
Course Overview
مجموعه ها و عملیات اتمی
Collections and Atomic Operations
-
بررسی اجمالی
Overview
-
معرفی کد
Introducing the Code
-
افزودن همزمانی
Adding Concurrency
-
اصلاح کد با ConcurrentQueue & lt؛ T
Fixing the Code with ConcurrentQueue<T>
-
نتایج متناقض
Inconsistent Results
-
توضیح ناسازگاری زمان بندی موضوع
Explaining the Thread Timing Inconsistency
-
چرا صف & lt؛ T. Enqueue () با شکست مواجه شد؟
Why Did Queue<T>.Enqueue() Fail?
-
عملیات اتمی
Atomic Operations
-
خلاصه
Summary
از فرهنگ لغت به ConcurrentDictionary
From Dictionary to ConcurrentDictionary
-
بررسی اجمالی
Overview
-
معرفی نسخه نمایشی SellShirts
Introducing the SellShirts Demo
-
ذخیره پیراهن در یک آرایه ImmutableAr
Storing Shirts in an ImmutableArray
-
کنترل کننده سهام و فرهنگ لغت
The Stock Controller and the Dictionary
-
تولید اعداد تصادفی
Generating Random Numbers
-
روش اصلی ()
The Main() Method
-
شبیه سازی خدمت به مشتریان
Simulating Serving Customers
-
افزودن همزمانی و همزمانی دیکشنری
Adding Concurrency and ConcurrentDictionary
-
نمایه ساز در مقابل TryGetValue ()
The Indexer vs. TryGetValue()
-
اصلاح کد برای اجازه دادن به شکست
Fixing the Code to Allow for Failure
-
حذف () در مقابل TryRemove ()
Remove() vs. TryRemove()
-
وضعیت جمع آوری همزمان می تواند نامشخص باشد
Concurrent Collection State Can Be Uncertain
-
خلاصه
Summary
ConcurrentDiction: اجتناب از شرایط مسابقه
ConcurrentDictionary: Avoiding Race Conditions
-
بررسی اجمالی
Overview
-
معرفی نسخه ی نمایشی BuyAndSell
Introducing the BuyAndSell Demo
-
ذخیره سهام در فرهنگ لغت
Storing the Stock in a Dictionary
-
به روزرسانی فرهنگ لغت استاندارد
Updating a Standard Dictionary
-
جمع کردن مقادیر با LINQ و بررسی خطاها
Summing Values with LINQ and Checking for Errors
-
مدل سازی خدمت به مشتری
Modelling Serving a Customer
-
افزودن همزمانی
Adding Concurrency
-
شرایط مسابقه و فساد داده ها
Race Conditions and Data Corruption
-
به روزرسانی اتمی با TryUpdate ()
Updating Atomically with TryUpdate()
-
معرفی AddOrUpdate ()
Introducing AddOrUpdate()
-
بهم پیوسته. افزودن ()
Interlocked.Add()
-
محافظت در برابر شرایط نژاد
Protecting against Race Conditions
-
Lambdas برای به روزرسانی مشروط فرهنگ لغت
Lambdas to Conditionally Update the Dictionary
-
حل مشکل بروزرسانی با بسته شدن
Solving the Update Problem with a Closure
-
GetOrAdd () را بخوانید فرهنگ لغت
GetOrAdd() to Read the Dictionary
-
خلاصه
Summary
مجموعه های تولید کننده و مصرف کننده: صف ، پشته و کیف
The Producer-consumer Collections: Queues, Stacks, and Bags
-
بررسی اجمالی
Overview
-
افزودن وظایف ورود به سیستم
Adding the Logging Tasks
-
محاسبه کمیسیون ها
Calculating Commissions
-
پیگیری به صف همزمان
Enqueueing to the Concurrent Queue
-
مصرف صف: مسئله نظرسنجی
Consuming the Queue: The Problem of Polling
-
ConcurrentStack & lt؛ T
ConcurrentStack<T>
-
ConcurrentBag & lt؛ T
ConcurrentBag<T>
-
رابط IProducerConsumerCollection & lt؛
The IProducerConsumerCollection<T> Interface
-
خلاصه
Summary
جلوگیری از نظرسنجی با BlockingCollection
Avoiding Polling with the BlockingCollection
-
بررسی اجمالی
Overview
-
درک BlockingCollection & lt؛ T
Understanding BlockingCollection<T>
-
چگونه BlockingCollection & lt؛ برای جلوگیری از نظرسنجی
How BlockingCollection<T> Avoids Polling
-
مصرف کننده قابل شمارش
The Consuming Enumerable
-
شمارش مستقیم کار نمی کند
Enumerating Directly Won't Work
-
خلاصه
Summary
شیوه های کدگذاری خوب و بد با مجموعه های همزمان
Good and Bad Coding Practices with Concurrent Collections
-
بررسی اجمالی
Overview
-
مجموعه ها و عملکرد همزمان
Concurrent Collections and Performance
-
نسخه ی نمایشی دیکشنری
The Dictionary Benchmark Demo
-
محک زدن با چندین موضوع
Benchmarking with Multiple Threads
-
اجرای معیار
Running the Benchmark
-
از حالت مشترک به میزان کم استفاده کنید
Use Shared State Sparingly
-
استفاده صحیح از ConcurrentDiction
Using ConcurrentDictionary Correctly
-
مشکل با تعداد
The Problem with Count
-
دولت جمع
Aggregate State
-
روشهای خوب برای دولت
Good Practices for State
-
خلاصه
Summary
شمارش مجموعه های همزمان
Enumerating Concurrent Collections
-
بررسی اجمالی
Overview
-
برشمردن یک فرهنگ لغت استاندارد
Enumerating a Standard Dictionary
-
برشمردن یک فرهنگ لغت همزمان
Enumerating a Concurrent Dictionary
-
مجبور کردن یک عکس فوری
Forcing a Snapshot Enumeration
-
موافقان و مخالفان عکس فوری
Snapshot Pros and Cons
-
خلاصه ماژول
Module Summary
-
خلاصه دوره
Course Summary
-
مدل های تی شرت: متشکرم!
T-shirt Models: Thank You!
-
چالش شما
Your Challenge!
نمایش نظرات