Advertisement
jaVer404

level16.lesson13.home06

Sep 14th, 2015
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. package com.javarush.test.level16.lesson13.home06;
  2.  
  3. /* Создание по образцу
  4. Разберись, как работает программа.
  5. По образу и подобию CountDownRunnable создай нить CountUpRunnable, которая выводит значения в нормальном порядке - от 1 до number
  6. */
  7.  
  8. public class Solution {
  9.     public static int number = 5;
  10.  
  11.     public static void main(String[] args) {
  12.         new CountDownRunnable("было");
  13.         new CountUpRunnable("стало");
  14.     }
  15.  
  16.     //Add your code below - добавьте код ниже
  17.     public static class CountUpRunnable implements Runnable {
  18.         private int countIndexUp = 1;
  19.         private Thread t;
  20.         public CountUpRunnable(String name) {
  21.             t = new Thread(this, name);
  22.             t.start();
  23.         }
  24.  
  25.         @Override
  26.         public void run()
  27.         {
  28.             try
  29.             {
  30.                 while (true) {
  31.                     System.out.println(toString());
  32.                     ++countIndexUp;
  33.                     if (countIndexUp == number+1)
  34.                         return;
  35.                     Thread.sleep(500);
  36.             }
  37.  
  38.             } catch (InterruptedException e) {
  39.  
  40.             }
  41.         }
  42.  
  43.         @Override
  44.         public String toString()
  45.         {
  46.             return t.getName() + ": " + countIndexUp;
  47.         }
  48.     }
  49.  
  50.     public static class CountDownRunnable implements Runnable {
  51.         private int countIndexDown = Solution.number;
  52.         private Thread t;
  53.  
  54.         public CountDownRunnable(String name) {
  55.             t = new Thread(this, name);
  56.             t.start();
  57.         }
  58.  
  59.         public void run() {
  60.             try {
  61.                 while (true) {
  62.                     System.out.println(toString());
  63.                     countIndexDown -= 1;
  64.                     if (countIndexDown == 0) return;
  65.                     Thread.sleep(500);
  66.                     Thread.yield();
  67.                 }
  68.             } catch (InterruptedException e) {
  69.             }
  70.         }
  71.  
  72.         public String toString() {
  73.             return t.getName() + ": " + countIndexDown;
  74.         }
  75.  
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement