• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

Thread & Concurrency (Part 2) 질문드립니다

22.04.06 21:33 작성 조회수 96

0

안녕하세요 주니온님 좋은 강의 

 

다름이 아니라 Thread & Concurrency (Part 2) 에 대해 의문이 있어 질문드립니다.

저희 자료 ch04 threads 기준 30p 예제에 관한 것인데, 여기서

if(pid==0) // child process 에서 thread가 2개 생성된다고 하셨는데, 이게 왜 2개인지 도무지 이해가 되질 않습니다. 

원래 thread가 하나 있어서 2개가 된건가요? 어느 pthread_creat로 하나가 만들어진 것 까지는 이해하겠으나, 두 개째는 언제 만들어진 것인지 도무지 모르겠습니다

답변 1

답변을 작성해보세요.

1

Exercise 4.17 말씀하시는 것 같군요.

 

이 문제는  child process에서 쓰레드를 생성한 후에 fork()를 호출했을 때,

thread 정보가 함께 복제가 되는가? 라는 문제입니다.

 

개념적으로 process의 컨텍스트가 모두 복사된다면 

thread까지 복사가 되므로 두 개의 쓰레드가 "될 수도 있다"라는 것이지,

두 개가 된다, 라는 뜻은 아니고요,

시스템마다 다르지만,

제가 테스트해 본 바로는 Linux에서는 쓰레드가 복제 안 되는 것 같습니다.

 

박세은님의 프로필

박세은

질문자

2022.04.07

친절하신 답변 감사드립니다!

다만 질문드린 예제는 4.19번 예제입니다! 제가 제대로 말씀드리지 않았네요...!
질문 내용은 동일한데, 혹시 다시 답변 부탁드려도 될까요?