Skip to content

Commit

Permalink
refactor: 스레드풀의 큐 사이즈 지정
Browse files Browse the repository at this point in the history
  • Loading branch information
hgo641 committed Sep 13, 2023
1 parent 45136ef commit a8091b5
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions tomcat/src/main/java/org/apache/catalina/connector/Connector.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.coyote.http11.Http11Processor;
import org.apache.catalina.controller.ControllerMapper;
Expand All @@ -17,9 +18,9 @@ public class Connector implements Runnable {
private static final Logger log = LoggerFactory.getLogger(Connector.class);
private static final int DEFAULT_PORT = 8080;
private static final int DEFAULT_ACCEPT_COUNT = 100;
private static final int MAX_THREADS_SIZE = 10;
private static final int MIN_PORT = 1;
private static final int MAX_PORT = 65535;
private static final int DEFAULT_MAX_THREAD = 250;
private static final String SERVER_START_MESSAGE = "Web Application Server started {} port.";
public static final int TASK_AWAIT_TIME = 60;

Expand All @@ -29,11 +30,11 @@ public class Connector implements Runnable {
private final ExecutorService executorService;

public Connector(final ControllerMapper controllerMapper) {
this(DEFAULT_PORT, DEFAULT_ACCEPT_COUNT, controllerMapper, MAX_THREADS_SIZE);
this(DEFAULT_PORT, DEFAULT_ACCEPT_COUNT, controllerMapper, DEFAULT_MAX_THREAD);
}

public Connector(final int port, final int acceptCount, final ControllerMapper controllerMapper) {
this(port, acceptCount, controllerMapper, MAX_THREADS_SIZE);
this(port, acceptCount, controllerMapper, DEFAULT_MAX_THREAD);
}

public Connector(
Expand All @@ -45,7 +46,17 @@ public Connector(
this.serverSocket = createServerSocket(port, acceptCount);
this.stopped = false;
this.controllerMapper = controllerMapper;
this.executorService = Executors.newFixedThreadPool(maxThreads);
this.executorService = new ThreadPoolExecutor(
getMaxThread(maxThreads),
getMaxThread(maxThreads),
0,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>(acceptCount)
);
}

private int getMaxThread(final int maxThread) {
return Math.max(maxThread, DEFAULT_MAX_THREAD);
}

private ServerSocket createServerSocket(final int port, final int acceptCount) {
Expand Down

0 comments on commit a8091b5

Please sign in to comment.