-
-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathExecutors_SingleThread_Callable.java
More file actions
60 lines (53 loc) · 1.6 KB
/
Executors_SingleThread_Callable.java
File metadata and controls
60 lines (53 loc) · 1.6 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
/**
* JAVA MULTITHREAD - Executors - SingleThread
*
* @author RinaldoDev
*/
public class Executors_SingleThread_Callable {
public static void main(String[] args) throws Exception {
ExecutorService executor = null;
try {
executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(new Tarefa());
System.out.println(future.isDone());
// System.out.println(future.get());
System.out.println(future.get(1, TimeUnit.SECONDS));
System.out.println(future.isDone());
// executor.shutdown();
// executor.awaitTermination(10, TimeUnit.SECONDS);
// System.out.println(future.isDone());
} catch (Exception e) {
throw e;
} finally {
if (executor != null) {
// executor.shutdown();
executor.shutdownNow();
}
}
}
public static class Tarefa implements Callable<String> {
@Override
public String call() throws Exception {
Thread.sleep(1000);
String name = Thread.currentThread().getName();
int nextInt = new Random().nextInt(1000);
return name + ": Inscreva-se no canal! " + nextInt;
}
}
}
//
// picpay.me/RinaldoDev
// apoia.se/rinaldodev
//
// YouTube: RinaldoDev
// Twitter: @rinaldodev
// Blog: rinaldo.dev
// LinkedIn: rinaldodev
// Facebook: rinaldo.dev
//