What is synchronization and why is it important?
With respect to multithreading, synchronization is the potential to control the access of multiple threads to shared resources.
Without synchronization, it is possible for one thread to change a shared object whereas another thread is in the process of using or updating that object's value. This often leads to important errors.