Advertisement
jaVer404

level16.lesson03.task05

Aug 13th, 2015
326
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.lesson03.task05;
  2.  
  3. import java.util.Date;
  4.  
  5. /* Поговорим о музыке?
  6. 1. Измените класс Violin так, чтоб он стал таском для нити. Используйте интерфейс MusicalInstrument
  7. 2. Реализуй необходимый метод в нити Violin. Реализация должна быть следующей:
  8.  
  9. 2.1. Считай время начала игры - метод startPlaying().
  10. 2.2. Подожди 1 секунду - метод sleepNSeconds(int n), где n - количество секунд.
  11. 2.3. Считай время окончания игры - метод stopPlaying().
  12. 2.4. Выведи на консоль продолжительность игры в миллисекундах. Пример "Playing 1002 ms".
  13. */
  14.  
  15. public class Solution {
  16.     public static void main(String[] args) {
  17.         Thread violin = new Thread(new Violin("Player"));
  18.         violin.start();
  19.     }
  20. /*-------------------------------------------*/
  21.     public static class Violin implements MusicalInstrument {
  22.         private String owner;
  23.  
  24.         public Violin(String owner) {
  25.             this.owner = owner;
  26.         }
  27.  
  28.         public Date startPlaying() {
  29.             System.out.println(this.owner + " starts playing");
  30.             return new Date();
  31.         }
  32.  
  33.         public Date stopPlaying() {
  34.             System.out.println(this.owner + " stops playing");
  35.             return new Date();
  36.         }
  37.  
  38.     @Override
  39.     public void run()
  40.     {
  41.         Date startPlay = startPlaying();
  42.         sleepNSeconds(1);
  43.         Date stopPlay = stopPlaying();
  44.         System.out.println("Playing " + (stopPlay.getTime() - startPlay.getTime())+ " ms");
  45.     }
  46. }
  47.  
  48.     /*---------------------------------------------------------------*/
  49.  
  50.     public static int delay = 1000;
  51.  
  52.     public static void sleepNSeconds(int n) {
  53.         try {
  54.             Thread.sleep(n * delay);
  55.         } catch (InterruptedException e) {
  56.             e.printStackTrace();
  57.         }
  58.     }
  59.  
  60.     public static interface MusicalInstrument extends Runnable {
  61.         Date startPlaying();
  62.  
  63.         Date stopPlaying();
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement