coverY |
---|
0 |
Why MultiThreading?
- Better CPU Utilization
- Better IO Utilization
- Higher application responses
Shared Mutable State issues:
- Race Conditions
- Invisible Writes
- Congestion
- DeadLock
- Nested Monitor Lockout
- Starvation
- Slipped Condition
- Missed Signals
No Shared Mutable state concurrency:
- Separate State Concurrency
- Functional Paralleism
- Parallel Pipelines
- More Complex Design - Code executed by multiple threads accessing shared data need special attention. Thread interaction is far from always simple. Errors arising from incorrect thread synchronization can be very hard to detect, reproduce and fix.
- Context Switching Overhead - When a CPU switches from executing one thread to executing another, the CPU needs to save the local data, program pointer, etc. of the current thread, and load the local data, program pointer, etc. of the next thread to execute. This switch is called a "context switch". The CPU switches from executing in the context of one thread to executing in the context of another.
- Increased resource consumption - Threads needs some memory to maintain its local stack it consumes more resources inside OS.
Type | Use Case |
---|---|
Volatile | Flags |
AtomicInteger |
Counters |
AtomicReference |
|