It's very simple. If a synchronized method is called at the same time from many threads only one call will be executed at a time. The calls will be lined up and performed one after the other in sequence. AND because synchronization is on a per object basis, when one synchronized method is being called from one thread, all synchronized methods ...