На каких объектах происходит lock?

Написал код, ожидал что lock в методах addToList будет происходить на одном и том же объекте а точнее worker, но судя по тестам lock происходит на разных объектах. Вопрос на каких? Не на тредах же

public class Main {

    public static void main(String[] args) throws InterruptedException {
       Worker worker = new Worker();

        Thread thread1 = new Thread(() -> {
            worker.doWork();
        });

        Thread thread2 = new Thread(() -> {
            worker.doWork();
        });

        thread1.start();
        thread2.start();

    }

}

class Worker {

    List<Integer> list1 = new ArrayList<>();
    List<Integer> list2 = new ArrayList<>();
    ThreadLocalRandom random = ThreadLocalRandom.current();

    public synchronized void addToList1(){
            list1.add(random.nextInt(100));
    }

    public synchronized void addToList2(){
            list2.add(random.nextInt(100));
    }

    public void doWork()  {
        for (int i = 0; i < 1000; i++) {
                addToList1();
                addToList2();
        }
    }
}

Ответы (0 шт):