나만의 공간
by 멋진인생
rss

skin by 이글루스
[네트워크] 멀티쓰레드 기반의 서버 구현
쓰레드란?
1.1.경량화 된 프로세스
- 프로세스와 마찬가지로 동시 실행이 가능하다.
- 프로세스의 단점을 극복하기 위해 등장.
2. 프로세스와의 차이점
- 스택을 제외한 나머지 메모리 영역을 공유
- 보다 간단한 컨텍스트 스위칭
- 일부 메모리를 공유하므로 쓰레드간 통신이 편리
 
 






쓰레드 생성
 
int pthread_create(pthread_t * thread, pthread_attr_t * attr, void*(*start_routine)(void *), void * arg);
thread : 쓰레드 ID 할당
attr : 쓰레드 특성 설정, 기본 NULL
start_routine : 실행할 함수 적음
arg : 함수로 전달하는 인자 값
 
 
int pthread_join(pthread_t th, void **thread_return);
th : th인자에 들어오는 ID 쓰레드가 종료할때 까지 실행 지연
thread_return : 쓰레드 종료시 반환되는 2차 포인터
 
쓰는 이유



 

1. 임계영역
- 두개 이상의 쓰레드에 의해서 동시에 실행되면 안 되는 영역.
2. 쓰레드 안전한 함수(Thread safe function)
  - 임계영역에서 호출이 가능한 함수.
  - 컴파일시 -D_REENTRANT옵션을 줘서 컴파일 하면 해결
 
 
1.
by 멋진인생 | 2006/05/06 15:43 | 스터디 | 트랙백 | 덧글(0)
트랙백 주소 : http://hydra01.egloos.com/tb/1920138
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

<< 이전 다음 >>