public class Solution { public static int delay = 1000; public static void main(String[] args) { Thread violin = new Thread(new Violin("Player")); violin.start(); } public static void sleepNSeconds(int n) { try { Thread.sleep(n * delay); } catch (InterruptedException e) { e.printStackTrace(); } } public interface MusicalInstrument extends Runnable { Date startPlaying(); Date stopPlaying(); } public static class Violin implements MusicalInstrument { private String owner; public Violin(String owner) { this.owner = owner; } public Date startPlaying() { System.out.println(this.owner + " is starting to play"); return new Date(); } public Date stopPlaying() { System.out.println(this.owner + " is stopping playing"); return new Date(); } @Override public void run() { startPlaying(); long start = startPlaying().getTime(); sleepNSeconds(1); stopPlaying(); long stop = stopPlaying().getTime(); System.out.println("Playing " + (stop - start) + " ms"); } } } Вывод: Player is starting to play Player is starting to play Player is stopping playing Player is stopping playing Playing 1015 ms