//Therefore you now have sorrow, but I will see you again, and your heart will rejoice, //and no one will take your joy away from you. (John 16:22) package com.javarush.task.task16.task1622; /* ÐоÑледоваÑелÑнÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ð¸Ñей */ public class Solution { public volatile static int COUNT = 4; public static void main(String[] args) throws InterruptedException { for (int i = 0; i < COUNT; i++) { new SleepingThread().join(); //напиÑиÑе ÑÑÑ Ð²Ð°Ñ ÐºÐ¾Ð´ } } public static class SleepingThread extends Thread { private static volatile int threadCount = 0; private volatile int countDownIndex = COUNT; public SleepingThread() { super(String.valueOf(++threadCount)); start(); } public void run() { while (true) { System.out.println(this); if (--countDownIndex == 0) return; try {//напиÑиÑе ÑÑÑ Ð²Ð°Ñ ÐºÐ¾Ð´ Thread.sleep(10); }catch(Exception e) {System.out.println("ÐиÑÑ Ð¿ÑеÑвана");} } } public String toString() { return "#" + getName() + ": " + countDownIndex; } } } /* ÐоÑледоваÑелÑнÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ð¸Ñей 1. РмеÑоде run поÑле вÑÐµÑ Ð´ÐµÐ¹ÑÑвий поÑÑÐ°Ð²Ñ Ð·Ð°Ð´ÐµÑÐ¶ÐºÑ Ð² 10 миллиÑекÑнд. ÐÑведи «ÐиÑÑ Ð¿ÑеÑвана«, еÑли ниÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑеÑвана. 2. Сделай Ñак, ÑÑÐ¾Ð±Ñ Ð²Ñе ниÑи вÑполнÑлиÑÑ Ð¿Ð¾ÑледоваÑелÑно: ÑнаÑала Ð´Ð»Ñ Ð½Ð¸Ñи â1 оÑÑÑÐµÑ Ñ COUNT до 1, поÑом Ð´Ð»Ñ Ð½Ð¸Ñи â2 Ñ COUNT до 1 и Ñ.д. ÐÑимеÑ: #1: 4 #1: 3 ... #1: 1 #2: 4 ... ТÑебованиÑ: 1.âÐÑогÑамма должна ÑоздаваÑÑ 4 обÑекÑа Ñипа SleepingThread. 2.âÐеÑод main должен вÑзваÑÑ join Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñоздаваемой SleepingThread ниÑи. 3.âÐеÑод run должен иÑполÑзоваÑÑ Thread.sleep(10). 4.âÐÑвод пÑогÑÐ°Ð¼Ð¼Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑооÑвеÑÑÑвоваÑÑ ÑÑловиÑ. 5.âÐÑли ниÑÑ SleepingThread пÑеÑÑваеÑÑÑ, она должна вÑвеÑÑи ÑообÑение "ÐиÑÑ Ð¿ÑеÑвана". package com.javarush.task.task16.task1622; * ÐоÑледоваÑелÑнÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ð¸Ñей * public class Solution { public volatile static int COUNT = 4; public static void main(String[] args) throws InterruptedException { for (int i = 0; i < COUNT; i++) { new SleepingThread(); //напиÑиÑе ÑÑÑ Ð²Ð°Ñ ÐºÐ¾Ð´ } } public static class SleepingThread extends Thread { private static volatile int threadCount = 0; private volatile int countDownIndex = COUNT; public SleepingThread() { super(String.valueOf(++threadCount)); start(); } public void run() { while (true) { System.out.println(this); if (--countDownIndex == 0) return; //напиÑиÑе ÑÑÑ Ð²Ð°Ñ ÐºÐ¾Ð´ } } public String toString() { return "#" + getName() + ": " + countDownIndex; } } } */