I just wanted to be sure that I understood the following right.
- The synchronized keyword on methods forbids two such methods to be run simultaneously on one instance of the class.
- The synchronization object is the instance in question.
If this is true the following example should be right
class Example
{
public synchronized void method1()
{
// mark 1 - never here when other thread at mark 2 or 4
}
public synchronized void method2()
{
// mark 2 - never here when other thread at mark 1 or 4
}
public void method3()
{
// mark 3 - may be (!) here when other thread at mark 1, 2 or 4
synchronized (this)
{
// mark 4 - never here when other thread at mark 1 or 2
}
}
}
Thx for a 'yes' or falsification. b