Page 14 -
P. 14
그림 1-6과 같이 메인 스레드가 스레드 2와 스레드 3을 만들려면 어떻게 해야 할까요? 다음 코드
처럼 하면 됩니다. 자세한 것은 뒤에서 설명하므로 일단은 대충 훑어보세요.
void main()
{
t2 = CreateThread(Thread2Proc);
}
void Thread2Proc()
{
t3 = CreateThread(Thread3Proc);
}
void Thread3Proc()
{ ...
}
프로그램은 많은 서브루틴 혹은 함수로 구성되어 있습니다. 프로그램이 실행될 때 C 언어에서는
void main() 함수가 실행되고, C#에서는 메인 클래스의 Main() 함수가 실행됩니다. 메인 함수를
시작점으로 많은 함수가 실행됩니다. 그리고 그 함수들은 또 다른 함수들을 실행합니다.
함수는 실행이 끝나면 자기 자신을 호출했던 호출자(caller) 함수를 실행했던 지점으로 되돌아가야
합니다. 그렇게 하려면 어디까지 실행하다 말았는지를 기억하고 있어야 합니다. 이 정보가 저장되
어 있는 곳을 호출 스택( call stack)이라고 합니다. 여러분이 Visual Studio를 쓰고 있다면 디버거를
사용해서 호출 스택을 확인해 볼 수 있습니다.
그림 1-7과 같이 간단한 프로그램을 하나 만든 후 func3()에 디버그 중단점(debug break point)을 찍
고 디버깅을 실행해 봅시다.
그림 1-7 Visual Studio에서 디버깅 중
022