Какая разница между запуском трех нитей у одного объекта и запуском по нити у трех объектов? Допустим:
Water water = new Water("water");
        for (int i = 0; i < threadCount; i++) {
            threads.add(new Thread(water, "#" + i));
        }
И вот это:
Water water1 = new Water("water1");
        Water water2 = new Water("water2");
        Water water3 = new Water("water3");
        Collections.addAll(threads, new Thread(water1),new Thread(water2),new Thread(water3));