-
-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathExecutors_MultiThread.java
More file actions
71 lines (63 loc) · 1.99 KB
/
Executors_MultiThread.java
File metadata and controls
71 lines (63 loc) · 1.99 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
61
62
63
64
65
66
67
68
69
70
71
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
* JAVA MULTITHREAD - Executors - MultiThread
*
* @author RinaldoDev
*/
public class Executors_MultiThread {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executor = null;
try {
// executor = Executors.newFixedThreadPool(3);
executor = Executors.newCachedThreadPool();
List<Tarefa> lista = new ArrayList<>();
for (int i = 0; i < 10; i++) {
lista.add(new Tarefa());
}
// String string = executor.invokeAny(lista);
// System.out.println(string);
List<Future<String>> list = executor.invokeAll(lista);
for (Future<String> future : list) {
System.out.println(future.get());
}
// Future<String> f1 = executor.submit(new Tarefa());
// System.out.println(f1.get());
// Future<String> f2 = executor.submit(new Tarefa());
// Future<String> f3 = executor.submit(new Tarefa());
// System.out.println(f2.get());
// System.out.println(f3.get());
executor.shutdown();
} catch (Exception e) {
throw e;
} finally {
if (executor != null) {
executor.shutdownNow();
}
}
}
public static class Tarefa implements Callable<String> {
@Override
public String call() throws Exception {
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
//