작성
·
155
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에서는 쓰레드가 복제 안 되는 것 같습니다.
친절하신 답변 감사드립니다!
다만 질문드린 예제는 4.19번 예제입니다! 제가 제대로 말씀드리지 않았네요...!
질문 내용은 동일한데, 혹시 다시 답변 부탁드려도 될까요?