What should I use as a lock object of a synchronized statement in Java
Could anyone explain what is the difference between these examples? Example # 1. public class Main { private Object lock = new Object(); private MyClass myClass = new MyClass(); public void testMethod() { // TODO Auto-generated method stub synchronized (myClass) { // TODO: modify myClass variable } } } Example # 2. package com.test; public class Main { private MyClass myClass = new MyClass(); private Object lock = new Object(); public void testMethod() { // TODO Auto-generated method stub synchronized (lock) { // TODO: modify myClass variable } } } What should I use as a monitor lock if I need