Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4단계 - Tomcat 구현하기] 카피(김상혁) 미션 제출합니다. #723

Merged
merged 2 commits into from
Sep 19, 2024

Conversation

tkdgur0906
Copy link
Member

안녕하세요 잉크~

4단계 미션 제출합니다~

학습테스트 커밋이 이전 pr에 있어서 해당 pr에서 다시 확인해주셔도 좋을 것 같아요!
Thread 학습테스트

Copy link

@yechop yechop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 카피
4단계 관련 몇가지 코멘트 남겼습니다.

this.serverSocket = createServerSocket(port, acceptCount);
this.stopped = false;
executorService = Executors.newFixedThreadPool(maxThreads);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Executors.newFixedThreadPool 은 내부적으로 LinkedBlockingQueue를 대기큐로 사용하여 대기 큐의 크기 제한이 없다고 합니다.
스레드풀 대기 큐의 크기를 제한하고 싶다면 어떤 방법을 사용할 수 있을까요? (코드에 반영하지 않으셔도 됩니다)

Copy link
Member Author

@tkdgur0906 tkdgur0906 Sep 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

static 메서드를 통해 바로 생성하는 것 대신 new ThreadPoolExecutor()를 직접 생성해서 파라미터로 대기큐의 크기를 설정해서 넘길 수 있다고 합니다!
아직 대기큐 설정에 대한 기준이 없어 기존 방식 그대로 유지했습니다!

Comment on lines 18 to +19
private static final int DEFAULT_ACCEPT_COUNT = 100;
private static final int DEFAULT_MAX_THREAD = 10;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acceptCount와 maxThreads는 각각 어떤 설정인가요?

Copy link
Member Author

@tkdgur0906 tkdgur0906 Sep 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acceptCount는 큐에 대기할 수 있는 스레드의 개수를 의미합니다.
maxThreads는 스레드 풀에 생성할 스레드의 개수와 동시에 실행할 수 있는 스레드의 최대 개수를 의미합니다.

@@ -67,7 +71,7 @@ private void process(final Socket connection) {
return;
}
var processor = new Http11Processor(connection);
new Thread(processor).start();
executorService.submit(processor);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

submit() 과 execute() 는 어떤 차이가 있을까요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

가장 큰 차이점은 submit()은 실행결과를 나타내는 Future를 반환하는 반면,
execute()는 결과를 반환하지 않는다는 점 입니다.

그래서 결과 값이 필요하거나 예외처리해야하는 경우에 submit()을 사용하고, 그게 아니라면 execute()를 사용해도 무방할 것 같습니다!

@yechop yechop merged commit b39bc94 into woowacourse:tkdgur0906 Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants