-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPoolSizeMainV1.java
More file actions
61 lines (43 loc) · 1.5 KB
/
Copy pathPoolSizeMainV1.java
File metadata and controls
61 lines (43 loc) · 1.5 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
package thread.executor.poolsize;
import thread.executor.ExecutorUtils;
import thread.executor.RunnableTask;
import util.MyLogger;
import util.ThreadUtils;
import java.util.concurrent.*;
import static thread.executor.ExecutorUtils.printState;
import static util.MyLogger.log;
import static util.ThreadUtils.sleep;
public class PoolSizeMainV1 {
public static void main(String[] args) {
ArrayBlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(2);
ExecutorService es = new ThreadPoolExecutor(2, 4, 3000, TimeUnit.MILLISECONDS, workQueue);
printState(es);
es.execute(new RunnableTask("task1"));
printState(es, "task1");
es.execute(new RunnableTask("task2"));
printState(es, "task2");
es.execute(new RunnableTask("task3"));
printState(es, "task3");
es.execute(new RunnableTask("task4"));
printState(es, "task4");
es.execute(new RunnableTask("task5"));
printState(es, "task5");
es.execute(new RunnableTask("task6"));
printState(es, "task6");
try {
es.execute(new RunnableTask("task7"));
} catch (RejectedExecutionException e) {
log("예외 발생 : " + e);
} finally {
printState(es, "task7");
}
sleep(3000);
log("====== 작업 완료=====");
printState(es);
sleep(3000);
printState(es);
es.shutdown();
log("====== 작업 종료=====");
printState(es);
}
}