CLR Threading
This course presents the threading features of the CLR.
You are currently not signed in. Please sign in to access subscriber-only content.
Currently using: {{getCurrentPlayerName()}} [Change]
| expand all | collapse all | Progress | Duration | |
|---|---|---|---|
Multithreading |
|
01:13:59 | |
|
Overview
|
|
01:11 | |
|
Process versus Thread
|
|
03:04 | |
|
Multithreading Use-Cases
|
|
02:18 | |
|
DEMO: Unresponsive UI
|
|
03:31 | |
|
Multithreading Caveats
|
|
04:11 | |
|
Starting Threads
|
|
02:36 | |
|
DEMO: Starting Threads
|
|
04:15 | |
|
DEMO: Multicore Machine
|
|
02:22 | |
|
Thread Entry Point Methods
|
|
03:53 | |
|
Thread Lifetime
|
|
03:56 | |
|
Thread Shutdown Choreography
|
|
06:09 | |
|
Thread Pool Overview
|
|
05:17 | |
|
Thread Pool Interfaces
|
|
01:02 | |
|
ThreadPool.QueueUserWorkItem
|
|
03:03 | |
|
DEMO: QueueUserWorkItem
|
|
05:00 | |
|
DEMO: !threadpool
|
|
04:09 | |
|
DEMO: Thread Pool Internals
|
|
06:00 | |
|
Delegates
|
|
07:10 | |
|
Async I/O
|
|
03:10 | |
|
Summary
|
|
01:42 | |
Thread Synchronization |
|
01:23:32 | |
|
Overview
|
|
01:30 | |
|
Critical Sections
|
|
03:07 | |
|
DEMO: Buggy Multithreaded Add
|
|
01:36 | |
|
Race Conditions
|
|
03:30 | |
|
Solution 1: Atomic Updates
|
|
03:26 | |
|
DEMO: Interlocked.Increment
|
|
01:30 | |
|
Solution 2: Data Partitioning
|
|
02:10 | |
|
DEMO: Data Partitioning
|
|
06:11 | |
|
Solution 3: Wait-Based Synchronization
|
|
02:48 | |
|
Wait-Based Synchronization Protocol
|
|
02:47 | |
|
Wait-Based Synchronization Illustrated
|
|
03:22 | |
|
Wait-Based Synchronization in the CLR
|
|
01:51 | |
|
Monitors Illustrated
|
|
02:10 | |
|
Monitors in the CLR
|
|
01:14 | |
|
Monitor Usage
|
|
02:16 | |
|
Exception-Aware Monitor Usage
|
|
01:45 | |
|
Monitor Usage in C#
|
|
01:09 | |
|
Hold and Wait
|
|
02:17 | |
|
Using Monitor.Wait/PulseAll
|
|
05:32 | |
|
Deadlock
|
|
03:07 | |
|
Deadlock Illustrated
|
|
01:37 | |
|
DEMO: Buggy Bank Account Simulation
|
|
09:00 | |
|
DEMO: Deadlock-Prone Thread Synchronization
|
|
04:26 | |
|
DEMO: Hierarchical Lock Acquisition
|
|
02:47 | |
|
Mutexes
|
|
04:53 | |
|
Deadlock-Free Multiple Lock Acquisition
|
|
03:33 | |
|
DEMO: Using Mutex and WaitHandle.WaitAll
|
|
01:07 | |
|
Summary
|
|
02:51 |
Multithreading