КАК происходит использование метода run() если нескольким потокам передают ОДИН И ТОТ ЖЕ ОБЪЕКТ С ИНТЕРФЕЙСОМ RUNNABLE ? три потока по очереди пользуются одним и тем же методом или для каждого создается свой метод?
public class Solution {

    static List<Thread> threads = new ArrayList<Thread>(threadCount);
     Water water = new Water("water");

        for (int i = 0; i < 10 i++) {
            threads.add(new Thread(water));
        }

        for (int i = 0; i < threadCount; i++) {
            threads.get(i).start();
        }
    }

    public static class Water implements Runnable {

       public void run() {
        }