forked from janbodnar/Java-Advanced
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScheduledExecutorServiceEx.java
More file actions
37 lines (25 loc) · 992 Bytes
/
ScheduledExecutorServiceEx.java
File metadata and controls
37 lines (25 loc) · 992 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.zetcode;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
class Task implements Runnable {
public void run() {
var threadName = Thread.currentThread().getName();
System.out.printf("Doing task in %s%n", threadName);
}
}
// ExecutorService schedules commands to run after a given
// delay, or to execute periodically.
public class ScheduledExecutorServiceEx {
public static void main(final String[] arguments) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(4);
ScheduledFuture<?> taskHandler =
scheduler.scheduleAtFixedRate(new Task(), 2, 2, TimeUnit.SECONDS);
scheduler.schedule(() -> {
taskHandler.cancel(true);
scheduler.shutdown();
}, 10, TimeUnit.SECONDS);
System.out.println("Launching tasks");
}
}