Thread 기본 개념은 리눅스(:12)에서와 별다를 것이 없다는 생각이다. 쓰레드 생성 -> 운용 -> 종료 관련 함수는 리눅스와 큰 차이가 없을 거라고 생각되니, pthread(:12) 제공 함수들과 비교하면서 공부해나가면 될 것 같다. 어느정도 적응이 되면, 동기화 쪽 문서를 보면 되지 않을까 싶다.
커널 오브젝트
커널에서 생성한 객체로 시스템 리소스의 정보를 담고 있는 데이터 블록이다. 커널에서 프로세스 혹은 쓰레드를 제어하기 위해 사용하는 정보 데이터 블럭이다. 리눅스(:12)환경에서 프로그래밍 하다가 커널 오브젝트라는 용어를 만나서 생소했었다. 리눅스 커널에서 관리하는 파일, 소켓(:12), 세마포어(:12), 뮤텍스(mutex), 시그널(:12) 등을 커널(:12) 오브젝트라고 보면 된다.
윈도에서 커널의 오브젝트를 가리키는 객체를 핸들이라고 한다. 역시 리눅스와 용어가 틀릴 뿐이다. 모든 것을 파일(:12)로 다루는 리눅스에서는 파일 지정 번호가 커널 오브젝트를 가리키는 핸들의 역할을 한다.
다음은 윈도 커널 오브젝트의 종류다.
이벤트 오브젝트
파일 오브젝트
I/O 포트 오브젝트
파이프 오브젝트
세마포 오브젝트
쓰레드 오브젝트
프로세스 오브젝트
뮤텍스 오브젝트
메일 슬롯 오브젝트
커널 오브젝트를 만드는 함수는 Create로 시작한다. CreateFile(:4100), CreateThread(:4100), CreateProcess(:4100), CreatePipe(:4100).. 등이다. 이들 함수는 공통적으로 핸들을 (반환 값 혹은 매개 변수로)반환한다.
Contents
윈도우즈 쓰레드 프로그래밍
커널 오브젝트
쓰레드 생성
CreateThread
_beginthread, _beginthreadex
예제
쓰레드 관련 문서
Recent Posts
Archive Posts
Tags