1
1
package br .com .leonardoz .features .executors ;
2
2
3
3
import java .util .LinkedList ;
4
- import java .util .List ;
5
4
import java .util .UUID ;
6
5
import java .util .concurrent .Callable ;
7
6
import java .util .concurrent .ExecutionException ;
8
- import java .util .concurrent .ExecutorService ;
9
7
import java .util .concurrent .Executors ;
10
8
import java .util .concurrent .Future ;
11
- import java .util .concurrent .ScheduledExecutorService ;
12
9
import java .util .concurrent .TimeUnit ;
13
10
14
11
/**
@@ -53,7 +50,7 @@ public class UsingExecutors {
53
50
54
51
public static void usingSingleThreadExecutor () {
55
52
System .out .println ("=== SingleThreadExecutor ===" );
56
- ExecutorService singleThreadExecutor = Executors .newSingleThreadExecutor ();
53
+ var singleThreadExecutor = Executors .newSingleThreadExecutor ();
57
54
singleThreadExecutor .execute (() -> System .out .println ("Print this." ));
58
55
singleThreadExecutor .execute (() -> System .out .println ("and this one to." ));
59
56
singleThreadExecutor .shutdown ();
@@ -67,15 +64,15 @@ public static void usingSingleThreadExecutor() {
67
64
68
65
public static void usingCachedThreadPool () {
69
66
System .out .println ("=== CachedThreadPool ===" );
70
- ExecutorService cachedThreadPool = Executors .newCachedThreadPool ();
71
- List < Future < UUID >> uuids = new LinkedList <>();
67
+ var cachedThreadPool = Executors .newCachedThreadPool ();
68
+ var uuids = new LinkedList <Future < UUID > >();
72
69
for (int i = 0 ; i < 10 ; i ++) {
73
- Future < UUID > submitted = cachedThreadPool .submit (() -> {
74
- UUID randomUUID = UUID .randomUUID ();
70
+ var submittedUUID = cachedThreadPool .submit (() -> {
71
+ var randomUUID = UUID .randomUUID ();
75
72
System .out .println ("UUID " + randomUUID + " from " + Thread .currentThread ().getName ());
76
73
return randomUUID ;
77
74
});
78
- uuids .add (submitted );
75
+ uuids .add (submittedUUID );
79
76
}
80
77
cachedThreadPool .execute (() -> uuids .forEach ((f ) -> {
81
78
try {
@@ -96,11 +93,11 @@ public static void usingCachedThreadPool() {
96
93
97
94
public static void usingFixedThreadPool () {
98
95
System .out .println ("=== FixedThreadPool ===" );
99
- ExecutorService fixedPool = Executors .newFixedThreadPool (4 );
100
- List < Future < UUID >> uuids = new LinkedList <>();
96
+ var fixedPool = Executors .newFixedThreadPool (4 );
97
+ var uuids = new LinkedList <Future < UUID > >();
101
98
for (int i = 0 ; i < 20 ; i ++) {
102
- Future < UUID > submitted = fixedPool .submit (() -> {
103
- UUID randomUUID = UUID .randomUUID ();
99
+ var submitted = fixedPool .submit (() -> {
100
+ var randomUUID = UUID .randomUUID ();
104
101
System .out .println ("UUID " + randomUUID + " from " + Thread .currentThread ().getName ());
105
102
return randomUUID ;
106
103
});
@@ -124,7 +121,7 @@ public static void usingFixedThreadPool() {
124
121
125
122
public static void usingScheduledThreadPool () {
126
123
System .out .println ("=== ScheduledThreadPool ===" );
127
- ScheduledExecutorService scheduledThreadPool = Executors .newScheduledThreadPool (4 );
124
+ var scheduledThreadPool = Executors .newScheduledThreadPool (4 );
128
125
scheduledThreadPool .scheduleAtFixedRate (() -> System .out .println ("1) Print every 2s" ), 0 , 2 , TimeUnit .SECONDS );
129
126
scheduledThreadPool .scheduleAtFixedRate (() -> System .out .println ("2) Print every 2s" ), 0 , 2 , TimeUnit .SECONDS );
130
127
scheduledThreadPool .scheduleWithFixedDelay (() -> System .out .println ("3) Print every 2s delay" ), 0 , 2 ,
@@ -141,7 +138,7 @@ public static void usingScheduledThreadPool() {
141
138
142
139
public static void usingSingleTreadScheduledExecutor () {
143
140
System .out .println ("=== SingleThreadScheduledThreadPool ===" );
144
- ScheduledExecutorService singleThreadScheduler = Executors .newSingleThreadScheduledExecutor ();
141
+ var singleThreadScheduler = Executors .newSingleThreadScheduledExecutor ();
145
142
singleThreadScheduler .scheduleAtFixedRate (() -> System .out .println ("1) Print every 2s" ), 0 , 2 , TimeUnit .SECONDS );
146
143
singleThreadScheduler .scheduleWithFixedDelay (() -> System .out .println ("2) Print every 2s delay" ), 0 , 2 ,
147
144
TimeUnit .SECONDS );
@@ -158,21 +155,21 @@ public static void usingSingleTreadScheduledExecutor() {
158
155
159
156
public static void usingWorkStealingThreadPool () {
160
157
System .out .println ("=== WorkStealingThreadPool ===" );
161
- ExecutorService workStealingPool = Executors .newWorkStealingPool ();
158
+ var workStealingPool = Executors .newWorkStealingPool ();
162
159
163
160
workStealingPool .execute (() -> System .out .println ("Prints normally" ));
164
161
165
162
Callable <UUID > generatesUUID = UUID ::randomUUID ;
166
- List < Callable < UUID >> severalUUIDsTasks = new LinkedList <>();
163
+ var severalUUIDsTasks = new LinkedList <Callable < UUID > >();
167
164
for (int i = 0 ; i < 20 ; i ++) {
168
165
severalUUIDsTasks .add (generatesUUID );
169
166
}
170
167
171
168
try {
172
- List < Future < UUID >> futureUUIDs = workStealingPool .invokeAll (severalUUIDsTasks );
173
- for (Future < UUID > future : futureUUIDs ) {
169
+ var futureUUIDs = workStealingPool .invokeAll (severalUUIDsTasks );
170
+ for (var future : futureUUIDs ) {
174
171
if (future .isDone ()) {
175
- UUID uuid = future .get ();
172
+ var uuid = future .get ();
176
173
System .out .println ("New UUID :" + uuid );
177
174
}
178
175
}
0 commit comments