If you have two blind cooks in the kitchen. One wants to make a chocolate cake, the other wants to make tuna fish casserole. But you only have one mixing bowl.
Cake cook will break two eggs into the bowl, put a cup of sugar in, and then turn to get the flour.
In the meantime, casserole cook will open up a can of tuna, dump it in, then turn to get the mushroom soup when,
Cake Cook comes back and dumps in three cups of flour then goes to get the baking powder.
At this point Casserole Cook comes back, dumps in the mushroom soup, then goes to the pantry to get the pasta,
Now, the Cake Cook comes back dumps in the baking powder and.....
if you get the idea, what two EXCELLENT cooks have created .... was a mess. Because, access to the bowl was not "synchronized". If the bowl would have been "synchronized" Cake Cook would have gained the bowl, Casserole Cook would have had to wait.
A consumer would have no way of knowing whether the underlying application architecture made proper use of "synchronization" unless they read some reviews first.... because I'd bet if they didn't there would be some reliability problems posted.
Kind of like a "Tuna Fish/Chocolate Cake" !
SCJP - 86% - June 11, 2009