프로세스
프로세스란 실행중인 프로그램을 말한다.
서로 다른 메모장 프로그램이 두 개 실행 되었을 때 두 개는 같은 프로그램이지만 각각 다른 프로세스로 인식된다.
스레드
윈도우에서 작업을 처리하는 주체
프로세스는 스레드를 담는 그릇이며 실제적인 처리는 스레드에서 담당한다.
프로세스는 하나 이상의 스레드를 가질 수 있다.
프로세스의 생성
WinExec , CreateProcess
WinExec사용하기 편리하나 제어하는 옵션이 부족하다. 되도록이면 CreateProcess를 사용하자
WinExec 는 프로세스가 초기화 되기전에 리턴하므로 CreateProcess와 달리 Findwindow함수로 바로 프로세스를 찾을 수 있다.
CreateProcess
10개의 인수를 가지며 반드시 필요한 인수는 아래 4개이다.
lpApplicationName
-실행 하고자 하는 프로그램의 이름(절대 경로를 사용해야한다.)
lpCommandLine
-명령행 인수
(lpApplicationName 아니면 이 인수 둘중에 하나만 사용할 수는 있지만 둘다 생략은 불가능하다.)
lpStartupInfo
-새로 만든 프로세스의 메인 윈도우 초기화 값
lpProcessInformation
-생성된 프로세스의 정보를 대입받기 위함
<FindProc>
<프로세스의 아이디를 이용하여 프로세스를 찾고 종료하기>
ProcB
ProcA라는 프로세스에서 메모장 프로세스를 실행한 후 ProcB프로세스에게 이 메모장 프로세스의 아이디를 보낸다. ProcB는 현재 실행중 인 프로세스들에서 A에게서 받은 아이디를 가진 메모장 프로세스의 핸들을 찾아 종료한다.
프로세스 ID
정해진 것은 아니며 실행중인 프로그램에게 일련번호를 부여한 것이다.
이 값은 고유하고 프로그램이 끝나면 재활용 가능하다.
'IT 공부 > Windows API' 카테고리의 다른 글
[Windows API] 윈도우 API 스레드 동기화(critical section,mutex) (0) | 2017.05.19 |
---|---|
[Windows API] 윈도우 API 스레드 (0) | 2017.05.19 |
[Windows API] 윈도우 API MDI (0) | 2017.05.02 |
[Windows API] 윈도우 api 클립보드 (0) | 2017.05.02 |
[윈도우즈 API] 윈도우 api 좌표공간 (0) | 2017.05.01 |