Created
February 11, 2014 16:02
-
-
Save Vox1oot/8937783 to your computer and use it in GitHub Desktop.
package com.javarush.test.level16.lesson03.task05;
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javarush.test.level16.lesson03.task05; | |
import java.util.Calendar; | |
import java.util.Date; | |
/* Поговорим о музыке? | |
1. Измените класс Violin так, чтоб он стал таском для нити. Используйте интерфейс MusicalInstrument | |
2. Реализуй необходимый метод в нити Violin. Реализация должна быть следующей: | |
2.1. Считай время начала игры - метод startPlaying(). | |
2.2. Подожди 1 секунду - метод sleepNSeconds(int n), где n - количество секунд. | |
2.3. Считай время окончания игры - метод stopPlaying(). | |
2.4. Выведи на консоль продолжительность игры в миллисекундах. Пример "Playing 1002 ms". | |
*/ | |
public class Solution { | |
public static void main(String[] args) { | |
Thread violin = new Thread(new Violin("Player")); | |
violin.start(); | |
} | |
public static class Violin implements MusicalInstrument { | |
private String owner; | |
public Violin(String owner) { | |
this.owner = owner; | |
} | |
public Date startPlaying() { | |
System.out.println(this.owner + " starts playing"); | |
return new Date(); | |
} | |
public Date stopPlaying() { | |
System.out.println(this.owner + " stops playing"); | |
return new Date(); | |
} | |
@Override | |
public void run() | |
{ | |
Date start = startPlaying(); | |
sleepNSeconds(1); | |
Date end = stopPlaying(); | |
System.out.println("Playing " + (end.getTime() - start.getTime()) + " ms"); | |
} | |
} | |
public static int delay = 1000; | |
public static void sleepNSeconds(int n) { | |
try { | |
Thread.sleep(n * delay); | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
} | |
public static interface MusicalInstrument extends Runnable { | |
Date startPlaying(); | |
Date stopPlaying(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment