멀티스레드
- 프로그래밍/NetWork
- 2011. 5. 23. 10:49
1.프로세스와 스레드
1)용어정리
- 프로세스(process) : 메모리를 비롯한 각종 리소스를 담고 있는 컨테이너로서 정적인 개념
- 스레드(thread) : 실제 CPU시간을 할당받아 수행되는 실행 단위로서 동적인 개념
- 주 스레드(primary thread) : main()또는 WinMain()함수에서 시작되는 스레드로, 프로세스가 시작할 때 생성
- 컨텍스트 전환(context switch) : CPU와 운영체제의 협동으로 이루어지는 스레드 실행 상태의 저장과 복원 작업
2)컨텍스트 전환 과정
2)컨텍스트 전환 과정
3)스레드
->스레드 생성과 종료에 대해서 알아보자
3_1) 스레드 생성에 필요한 요소
- 스레드 함수의 시작 주소
- 스레드 함수 실행시 사용할 스택 영역의 크기
3_2) 프로세스의 주소 공간
- 두개의 함수
- 세 개의 스레드
2.쓰레드 생성과 종료에 대해서 알아보자
1)CreateThread()함수 : 스레드를 생성한 후 스레드 핸들을 리턴
1)CreateThread()함수 : 스레드를 생성한 후 스레드 핸들을 리턴
ex) _beginthreadex()함수에 대해서 알아보자(C++ Runtime-Library에서 제공하는 함수)
2) 스레드 함수 정의(항상 이런식으로 콜백함수로 지정되어있다.)
3) 스레드 종료 방법
- 스레드 함수가 리턴
- 스레드 함수 내에서 ExitThread()함수를 호출
- TerminateThread()함수를 호출
- 주 스레드가 종료하면 모든 스레드가 종료
위의 4가지 경우에 대해서만 스레드가 종료됨
위의 4가지 경우에 대해서만 스레드가 종료됨
4) 스레드 종료 함수
3. 쓰레드를 조작하기에 필요한 함수들 정리
1) 스레드 조작 - 스레드 종료 대기(waitfor함수들 ㅎㅎ)
1) 스레드 조작 - 스레드 종료 대기(waitfor함수들 ㅎㅎ)
2)소켓과 연관된 주소 정보 얻기
기본 스레드
기본 스레드 + WaitForSingleObject()
멀티스레드+WaitForMultipleObjects()
이 글을 공유하기