목차
1. 프로세스
2. 쓰레드
2. 쓰레드
본문내용
POSIX pthread를 쓰기위한 각종 준비를 한 뒤,누군가의 접속에 대한 요청을 감시하기까지는 위와 동일한 루틴이 사용됩니다. 하지만 요청이 들어오면 pthread_create()이라는 함수를 사용해서 쓰레드를 생성시켜주게 되죠. 그리고 쓰레드 별로 위와 똑같이 각 클라이언트마다 한 개씩 맞물려 주게 되는데, 여기서 주목해야 할 차이점은 바로 쓰레드는 생성시 쓰레드를 생성시킨 프로세스가 가지고 있던 abcde에 대응되는 a'b'c'd'e'를 만들지 않는다는 점이죠. 고로 아무리 쓰레드를 만들어 내어도 abcde외에는 생기지 않습니다. 또한 위에서 트래킹을 위한 변수 f가 공유변수의 형태로 필요했듯이 여기서도 f가 필요하겠지만 여기서는 공유변수로 존재할 이유가 없어집니다. 왜냐면 모든 쓰레드는 어차피 자신을 생성한 프로세스의 로컬및 글로벌 변수에 대한 접근이 허용되니까요. 하지만 싱크문제를 조심해야 합니다. 그렇게 때문에 뮤텍스, 그리고 조건변수에 대한 세마포어라 할수 있는 pthread_cond_signal 과 pthread_cond_wait을 통해 단 한번에 한개의 쓰레드만이 f라는 변수를 접근할수 있도록 허용해주어야 안전하게 트래킹이 됩니다.
소개글