What is a critical section?
Critical sections indicate shared resources that are accessed by multiple processes or threads in a concurrent application, which can lead to unexpected, and even erroneous, behaviors.
What is a race condition, and why is it undesirable in a concurrent program?
A race condition occurs when two or more threads/processes access and alter a shared resource simultaneously, resulting in mishandled and corrupted data.
What is the underlying cause of a race condition?
The root cause of a race condition is multiple threads/process reading in and altering a shared resource simultaneously; and, when all of the threads/processes finish their execution, only the result of the last thread/process is registered.
How can locks solve the problem of a race condition?
Since the race conditions arise when multiple threads or processes access and write to a...