Critical Sections
We need to identify the code that manipulates the shared data
That code is called the critical section
Only one thread can be in the critical section at the same time
Use special entry and exit procedures to get in and out of the critical section
With this in mind, let’s fix the counter example