During thread synchronization, synchronized is usually used to modify the method. Many people think that this lock is only used to lock the method, but its essence is to lock the object (such as object );
When a thread calls a synchronized modified method, other threads cannot call this method, that is, the current thread locks the method body;
However, other threads can call other non-synchronized methods of this object (Object A) to modify the values of some member variables of object; if you want to lock some variables of object A, they cannot be modified at the same time. Any method that modifies the variable must be modified with synchronized;
For the wait () method, this method is the method in the object. Its function is to pause the thread that currently calls a synchronized method. Note that it is the thread wait rather than the object wait, the wait method must be synchronized.