- 스레드의 프로그래밍, 상태, 스케줄링, 동기화 이해
1. 스레드
- 순차 프로그램과 유사하게 시작, 실행, 종료의 순서를 가짐
- 프로그램 내에서만 실행 가능
- 프로그램 내부에 있는 제어의 단일 순치 흐름
메소드 | 기능 |
Thread.Start() | 해당 스레드를 실행 |
Thread.Abort() | 해당 스레드 종료 |
Thread.Join() | 해당 스레드의 실행이 종료될 때까지 기다림 |
Thread.Suspend() | 해당 스레드를 대기 상태로 만듦 |
Thread.Resume() | 대기 상태 스레드를 실행 상태로 만듦 |
Thread.Sleep() | 지정 시간동안 실행을 멈추고 대기상태로 감 |
동기화
ㅇ 비동기 스레드
- 각각의 스레드는 그의 실행에 필요한 모든 자료와 메소드 포함
- 병행으로 실행 중인 다른 스레드의 상태 또는 행위에 관계되지 않는 자신만의 공간에서 실행됨
ㅇ 동기 스레드
- 동시에 실행되는 스레드들이 자료 공유
- 다른 스레드의 상태와 행위 고려
2. 애트리뷰트
ㅇ 표준 애트리뷰트
- 어셈블리, 클래스, 필드, 메소드, 프로퍼티 등에 다양한 종류의 속성 정보를 추가하기 위해 사용
- Conditional 애트리뷰트 : 조건부 메소드 작성시 사용
- Obsolete 애트리뷰트 : 앞으로 사용되지 않을 메소드를 표시하기 위해서 사용
ㅇ 사용자 정의 애트리뷰트
- 프로그래머에 의해 정의된 애트리뷰트
- 이름은 항상 XxxxAttribute(액시즈애트리뷰트) 형태를 가져야 함
ex) AttributeName 부분에 이름이 들어가고, 뒤에 Attribute가 나오는 형태