스레드와 프로세스
스레드와 프로세스는 컴퓨터 분야에서 서로 연관된 개념입니다. 이 둘은 모두 특정 순서로 실행해야 할 명령 시퀀스를 나타냅니다. 그러나 개별 스레드 또는 프로세스의 명령은 함께 실행할 수 있습니다.
프로세스는 운영 체제에 있으며 사용자에게 프로그램이나 응용 프로그램으로 표시됩니다. 반면에 스레드는 프로세스 내에 있습니다. 따라서 스레드를 간단한 프로세스라고도 합니다. 각 프로세스는 하나 이상의 스레드로 구성됩니다.
여러 개의 프로세스가 있으면 컴퓨터에서 한 번에 여러 작업을 수행할 수 있습니다. 여러 개의 스레드가 있으면 프로세스에서 작업을 구분하여 병렬로 수행할 수 있습니다. 프로세서가 여러 개 있는 컴퓨터에서는 프로세스나 스레드를 서로 다른 프로세서에서 실행하여 병렬 처리를 수행할 수 있습니다.
완벽한 병렬 처리가 항상 가능한 것은 아닙니다. 경우에 따라서는 스레드를 동기화해야 합니다. 한 스레드에서 다른 스레드의 결과를 기다리거나 한 스레드에 사용 중인 리소스를 다른 스레드에서 단독으로 액세스하여 사용해야 할 수도 있습니다. 주로 동기화 문제로 인해 다중 스레드 응용 프로그램에서 버그가 발생합니다. 경우에 따라 스레드가 전혀 사용할 수 없는 리소스를 기다리다가 교착 상태가 발생할 수 있습니다.
Visual Studio 디버거에서는 스레드 및 프로세스 디버깅에 사용할 수 있는 강력하고 간편한 도구를 제공합니다.
Visual Studio의 스레드 및 프로세스 디버깅 도구
Visual Studio에서 프로세스 작업을 수행하기 위한 기본 도구는 프로세스에 연결 대화 상자, 프로세스 창 및 디버그 위치 도구 모음입니다. 스레드 디버깅을 위한 기본 도구는 스레드 창, 소스 창의 스레드 마커 및 디버그 위치 도구 모음입니다.
다중 스레드 응용 프로그램 디버깅을 위한 기본 도구는 병렬 스택 창과 병렬 작업 창입니다.
다음 표에서는 각 도구에 제공되는 정보와 각 도구에서 수행할 수 있는 작업을 보여 줍니다.
사용자 인터페이스 |
사용할 수 있는 정보 |
수행할 수 있는 작업 |
---|---|---|
프로세스에 연결 대화 상자 |
연결할 수 있는 사용 가능한 프로세스
|
연결할 프로세스 선택 원격 컴퓨터 선택 원격 컴퓨터 연결을 위한 전송 형식 변경 |
프로세스 창 |
연결된 프로세스
|
도구
바로 가기 메뉴
|
스레드 창 |
현재 프로세스의 스레드
|
도구
바로 가기 메뉴
다른 작업
|
소스 창 |
왼쪽 여백의 스레드 표시기는 단일 또는 다중 스레드를 나타냅니다. 기본적으로 설정되어 있지 않으며 스레드 창의 바로 가기 메뉴를 사용하여 설정합니다. |
바로 가기 메뉴
|
디버그 위치 도구 모음 |
|
|
병렬 스택 창 |
|
|
병렬 작업 창 |
|
|