Skip to content

Commit ba38b2a

Browse files
author
eugenp
committed
timer and timertask examples
1 parent 1c5796c commit ba38b2a

File tree

1 file changed

+91
-2
lines changed

1 file changed

+91
-2
lines changed

core-java/src/test/java/org/baeldung/java/JavaTimerUnitTest.java

Lines changed: 91 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import java.util.Date;
44
import java.util.Timer;
55
import java.util.TimerTask;
6+
import java.util.concurrent.Executors;
7+
import java.util.concurrent.ScheduledExecutorService;
8+
import java.util.concurrent.TimeUnit;
69

710
import org.junit.Test;
811

@@ -15,16 +18,102 @@ public void givenUsingTimer_whenSchedulingTaskOnce_thenCorrect() throws Interrup
1518
final TimerTask timerTask = new TimerTask() {
1619
@Override
1720
public void run() {
18-
System.out.println("Task performed on " + new Date() + "\n" + "Thread's name: " + Thread.currentThread().getName());
21+
System.out.println("Task performed on: " + new Date() + "\n" + "Thread's name: " + Thread.currentThread().getName());
1922
}
2023
};
21-
2224
final Timer timer = new Timer("Timer");
25+
2326
final long delay = 1000L;
2427
timer.schedule(timerTask, delay);
2528

2629
Thread.sleep(delay * 2);
2730
timer.cancel();
2831
}
2932

33+
@Test
34+
public void givenUsingTimer_whenSchedulingRepeatedTask_thenCorrect() throws InterruptedException {
35+
final TimerTask repeatedTask = new TimerTask() {
36+
@Override
37+
public void run() {
38+
System.out.println("Task performed on " + new Date());
39+
}
40+
};
41+
final Timer timer = new Timer("Timer");
42+
43+
final long delay = 1000L;
44+
final long period = 1000L;
45+
timer.scheduleAtFixedRate(repeatedTask, delay, period);
46+
47+
Thread.sleep(delay * 2);
48+
timer.cancel();
49+
}
50+
51+
@Test
52+
public void givenUsingTimer_whenSchedulingDailyTask_thenCorrect() throws InterruptedException {
53+
final TimerTask repeatedTask = new TimerTask() {
54+
@Override
55+
public void run() {
56+
System.out.println("Task performed on " + new Date());
57+
}
58+
};
59+
final Timer timer = new Timer("Timer");
60+
61+
final long delay = 1000L;
62+
final long period = 1000L * 60L * 60L * 24L;
63+
timer.scheduleAtFixedRate(repeatedTask, delay, period);
64+
65+
Thread.sleep(delay * 2);
66+
timer.cancel();
67+
}
68+
69+
@Test
70+
public void givenUsingTimer_whenCancelingTimerTask_thenCorrect() throws InterruptedException {
71+
final TimerTask task = new TimerTask() {
72+
@Override
73+
public void run() {
74+
System.out.println("Task performed on " + new Date());
75+
cancel();
76+
}
77+
};
78+
final Timer timer = new Timer("Timer");
79+
80+
final long delay = 1000L;
81+
final long period = 1000L;
82+
timer.scheduleAtFixedRate(task, delay, period);
83+
84+
Thread.sleep(delay * 3);
85+
}
86+
87+
@Test
88+
public void givenUsingTimer_whenCancelingTimer_thenCorrect() throws InterruptedException {
89+
final TimerTask task = new TimerTask() {
90+
@Override
91+
public void run() {
92+
System.out.println("Task performed on " + new Date());
93+
}
94+
};
95+
final Timer timer = new Timer("Timer");
96+
97+
timer.scheduleAtFixedRate(task, 1000L, 1000L);
98+
99+
Thread.sleep(1000L * 2);
100+
timer.cancel();
101+
}
102+
103+
@Test
104+
public void givenUsingExecutorService_whenSchedulingRepeatedTask_thenCorrect() throws InterruptedException {
105+
final TimerTask repeatedTask = new TimerTask() {
106+
@Override
107+
public void run() {
108+
System.out.println("Task performed on " + new Date());
109+
}
110+
};
111+
final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
112+
final long delay = 1000L;
113+
final long period = 1000L;
114+
executor.scheduleAtFixedRate(repeatedTask, delay, period, TimeUnit.MILLISECONDS);
115+
Thread.sleep(delay + period * 3);
116+
executor.shutdown();
117+
}
118+
30119
}

0 commit comments

Comments
 (0)