Unsynchronized Data Access
This type of problem is called a race condition
- The outcome of the execution varies according to when interrupts occur
- Which thread gets its way depends on the outcome of a “race”
The solution is to use synchronization: have threads communicate with each other to keep them from tripping each other up