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

Thread 개수 제한에 따른 error handling 관련하여 질문드립니다. #9

Open
AutoclickerI opened this issue Jun 16, 2024 · 1 comment
Labels
solved Question solved

Comments

@AutoclickerI
Copy link

AutoclickerI commented Jun 16, 2024

Step-1에

For debugging purposes, you may change the constant definitions in burger.h. However, your implementation must be able to work with arbitrary constant values.

라고 적혀있습니다.
https://www.ibm.com/docs/en/zos/2.4.0?topic=functions-pthread-create-create-thread
ibm의 문서에 따르면, pthread_create() inspects this address space before creating a new thread. A realistic limit is 200 to 400 threads.
이라고 적혀있습니다. 즉, 동시에 실행될 수 있는 thread의 수에는 제한이 존재하며, CUSTOMER_MAX를 10000 이상의 매우 큰 값으로 설정해 두고, ./client 1000등을 실행할 경우 일부 thread가 정상적으로 실행되지 않아 pthread_join에서 block되는 경우를 확인하였습니다. 이 경우에 client에서 다음 세 가지 경우 중 어떤 방식으로 구현하여야 하는지 문의드립니다.

  1. thread가 정상적으로 실행되지 못한 경우, 앞선 thread가 종료될 때까지 기다린 후 다시 생성 시도
  2. thread가 정상적으로 실행되지 못한 경우 에러를 반환하고 client를 즉시 종료
  3. thread가 정상적으로 실행되지 못한 경우 정상적으로 실행되지 못한 스레드를 기록해 둔 후, pthread_join에서 예외처리
@kwonsw055
Copy link
Collaborator

Thread가 정상적으로 실행되지 않을 정도로 많은 thread를 생성하는 경우는 테스트 하지 않을 예정이니, 고려하지 않으셔도 됩니다.

@kwonsw055 kwonsw055 reopened this Jun 17, 2024
@kwonsw055 kwonsw055 added the solved Question solved label Jun 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
solved Question solved
Development

No branches or pull requests

2 participants