-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathThreadPool.java
33 lines (25 loc) · 1.02 KB
/
ThreadPool.java
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
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ThreadPool {
static int corePoolSize = 5;
static int maxPoolSize = 10;
static long keepAliveTime = 5000;
static ExecutorService threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime,
TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
static void stopBatchProcess() throws IOException {
if (((ThreadPoolExecutor) threadPoolExecutor).getActiveCount() == 1) {
shutdownThreadPool();
MyFileWriter.flushBufferedWriter();
MyFileWriter.closeFileWriter();
TimeUtil.setEndTime(System.currentTimeMillis());
System.out.println("Execution time in milliseconds: " + TimeUtil.getTimeElapsed());
System.out.println("Execution time in seconds: " + TimeUtil.getTimeElapsed() / 1000);
}
}
static void shutdownThreadPool() {
threadPoolExecutor.shutdown();
}
}