The Shared State Concurrency model has the following issues with low-level concurrency API (threading API):
- Lots of boilerplate code for locks and synchronized blocks
- Very hard and tedious to manage multi-threaded applications
- Low-level threading API
- Lots of concurrency issues—deadlock, race conditions
- Tight coupling between actual business logic and concurrency logic
- Less performance because of lots of blocking and synchronizations
- It uses the blocking communication approach
- It uses mutable data for communication between threads
- It does not utilize underlying multi-core CPUs effectively
- There are lots of context switches between threads to allocate CPU
- It does not support true Parallelism