• Thread
    1. 컴퓨터 프로그램 수행 시 프로세스 내부에 존재하는 수행 경로, 일련의 실행 코드
    2. 프로세스 생성 시 하나의 주 스레드가 생성되어 대부분의 작업처리, 주 스레드 종료->프로세스 종료
      - 멀티 스레딩 : 하나의 프로세스 내에서 다수의 스레드가 동시에 수행
    3. 스레드 구성
      - 예외 처리기
      - 스케쥴링 우선 순위
      - 구조집합(시스템에서 일정을 잡을 때까지 스레드 컨텍스트를 저장하는데 사용)
  • 프로세스
    1. 실행 중인 프로그램을 의미
    2. 하나 이상의 스레드를 가짐(primary thread)
    3. 메인 스레드는 프로세스가 할당한 메모리 영역에서 실행, 프로세스에 할당된 시스템 리소스 사용
    4. 하나의 프로세스가 스레드 여러개 소유 가능
  • User Defined Thread 사용 이유
    • 작업에 특정 우선 순위를 지정이 필요하면
    • 실행 시간이 오래 걸려 다른 작업을 차단이 필요하면
    • 모든 ThreadPool 스레드는 MTA(다중스레드아파트)에 있는데 일부만 STA(단일스페드아파트)에 두어야 하는 경우
    • 사용하는 기능을 위해 안정적인 ID가 필요한 경우(중단, 일시중단, 검색)
    • 사용자 인터페이스와 상호 작용하는 백그라운드 스레드를 실행하는 것이 필요
  • 스레드 생성과 소멸
    • 스레드 관련 주요 클래스(다중스레드를 위한 클래스)
      • 1. Thread class : 스레드를 만들고 제어, 해당속성 설정 및 상태를 가져옴
        • 생성 : 스레드 클래스를 이용한 생성, 스레드 객체 생성 후 이 객체의 생성자에 ThreadStart 위임형식을 전달
          • 프로세스는 하나 이상의 스레드를 만들어 해당 프로세스와 관련된 프로그램 코드 부분을 실행
          • 스레드가 실행하는 프로그램 코드를 지정하려면 ThreadStart 대리자 또는 ParameterizedThreadStart 대리자를 사용
          • ParameterizedThreadStart 대리자를 사용하여 스레드 프로시저에 데이터를 전달할 수 있음

Thread classdp 의한 생성 : Thread 객체생성 후에 이 객체의 생성자에 ThreadStat 위임 형식을 전달.

[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

+ Recent posts