Может кто-нибудь пояснить один момент. В последней задаче, где создаются 3 нити и один объект. Метод run(), который реализует Water один для каждой нити и они просто вызывают его поочередно (попользовался сначала один поток, потом другой и т.д.) или этот метод дублируется для каждого потока и они(потоки) ждут своего времени и отрабатывают каждый свой run()?