코딩 공부/패스트캠퍼스 게임 개발 올인원

패스트캠퍼스 챌린지 39일차

잘자라는스투키 2022. 3. 3. 23:48
반응형

[C# 프로그래밍 : 초보 탈출 - 스레드2]

 

 

1. 스레드 중단하기

  • 예외처리를 사용하는 게 제일 좋음. 안정성을 높임

- Abort 

  • 함수의 종료를 보장하지 않으므로 권장하지 않음
  • 강제 종료.
  • Thread 변수.Abort();

- Join

  • 함수의 종료할수 있게끔 보장함. 함수가 끝나는 시점에 종료.
  • 동작 중인 함수의 끝까지 대기함
  • Thread 변수.Join();

- Interrupt

  • 함수 종료 보장하지 않음. Abort랑 비슷함
  • Thread변수.Interrupt();

 

 

2. ThreadState 열거형

(myThread.ThreadState&(ThreadState.Stopped | ThreadState.Unstarted))==0

 

3. 스레드 동기화(Thread Synchronization)

  • 스레드끼리 데이터나 변수들을 함께 공유하기 때문에 제멋대로 서로 자원을 사용한다. 따라서 한 번에 한 쓰레드만 이용할 수 있는 코드 영역인 크리티컬 섹션(Critical Section)을 만들어야 함

- 크리티컬 섹션 만들기

  • lock키워드로 감싼다. lock블록이 끝나기 전까지 다른 쓰레드는 이 코드를 실행할 수 없음. 
  • lock(오브젝트 타입 매개변수){ 코드 작성 };
  • 데드락을 발생시킬수도 있음
  • 데드락 : 교착 상태. 웨이트가 동시에 생겨서 멈춰버림. 프로그램이 무거워지고 느려질 수도 있따.

- Monitor / Mutex

 

3. Task, Task<TResult>

  • 비동기코드를 통해서 쓰레드 같은 느낌의 코드를 작성할 수 있다
  • 쓰레드를 쉽게 사용하기위해 만듬
  • Action delegate : Task aa = new Task(TaskMethod);
  • Func delegate : Task<int> bb = Task<int>(TaskMethodParam, 10); -> TaskMethodParam(10);

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

<본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.>

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기

#C#과유니티로배우는게임개발올인원패키지Online.

 

반응형