- Thread
- 컴퓨터 프로그램 수행 시 프로세스 내부에 존재하는 수행 경로, 일련의 실행 코드
- 프로세스 생성 시 하나의 주 스레드가 생성되어 대부분의 작업처리, 주 스레드 종료->프로세스 종료
- 멀티 스레딩 : 하나의 프로세스 내에서 다수의 스레드가 동시에 수행 - 스레드 구성
- 예외 처리기
- 스케쥴링 우선 순위
- 구조집합(시스템에서 일정을 잡을 때까지 스레드 컨텍스트를 저장하는데 사용)
- 프로세스
- 실행 중인 프로그램을 의미
- 하나 이상의 스레드를 가짐(primary thread)
- 메인 스레드는 프로세스가 할당한 메모리 영역에서 실행, 프로세스에 할당된 시스템 리소스 사용
- 하나의 프로세스가 스레드 여러개 소유 가능
- User Defined Thread 사용 이유
- 작업에 특정 우선 순위를 지정이 필요하면
- 실행 시간이 오래 걸려 다른 작업을 차단이 필요하면
- 모든 ThreadPool 스레드는 MTA(다중스레드아파트)에 있는데 일부만 STA(단일스페드아파트)에 두어야 하는 경우
- 사용하는 기능을 위해 안정적인 ID가 필요한 경우(중단, 일시중단, 검색)
- 사용자 인터페이스와 상호 작용하는 백그라운드 스레드를 실행하는 것이 필요
- 스레드 생성과 소멸
- 스레드 관련 주요 클래스(다중스레드를 위한 클래스)
- 1. Thread class : 스레드를 만들고 제어, 해당속성 설정 및 상태를 가져옴
- 생성 : 스레드 클래스를 이용한 생성, 스레드 객체 생성 후 이 객체의 생성자에 ThreadStart 위임형식을 전달
- 프로세스는 하나 이상의 스레드를 만들어 해당 프로세스와 관련된 프로그램 코드 부분을 실행
- 스레드가 실행하는 프로그램 코드를 지정하려면 ThreadStart 대리자 또는 ParameterizedThreadStart 대리자를 사용
- ParameterizedThreadStart 대리자를 사용하여 스레드 프로시저에 데이터를 전달할 수 있음
- 생성 : 스레드 클래스를 이용한 생성, 스레드 객체 생성 후 이 객체의 생성자에 ThreadStart 위임형식을 전달
- 1. Thread class : 스레드를 만들고 제어, 해당속성 설정 및 상태를 가져옴
- 스레드 관련 주요 클래스(다중스레드를 위한 클래스)
[Thread property and method]
Thread.currentThread : 현재 실행중인 스레드 객체 참조 반환
Thread.IsAlive : 특정 스레드의 실행 여부
Thread.IsBackground : 백그라운드 스레드 여부
Thread.Name : 특정 스레드의 이름 지정 반환
Thread.ThfreadState : 스레드 상태 반환
Thread.Priority : 스레드 우선순위 설정 반환
Thfread.Abort() : 스레드 중지
Thread.GetHashCode() : 스레드 ID 반환
Thread.interrupt() : 스레드에 인터럽트 호출
Thread.Join() : 중지된 스레드 동기화
Thread.Resume() : Suspend된 스레드를 다시 활성화
Thread.Start() : 스레드 시작
Thread.Suspend() 스레드를 Suspend
'C# 기초 > MyResearching' 카테고리의 다른 글
[C#][Delegate][Event] (0) | 2020.02.16 |
---|---|
[C#][Event] (0) | 2020.02.14 |
[C#][Example]TreeView (0) | 2020.02.13 |