U E D R , A S I H C RSS

CS/7월17일


1. 개요

  • 종료!

3. 진행 시간

  • 14시 30분 ~ 17시

4. 진행 예정 내용

  • 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.

  • #15. BCL Part.3
    • FileStream, FileMode
    • File 클래스와 FileInfo 클래스
    • Directory 클래스와 DirectoryInfo 클래스
    • Path 타입

  • #16. BCL Part.4
    • Thread
    • Thread 상태 제어
    • 전경 스레드와 배경 스레드
    • Thread 동기화 처리 - Monitor를 통한 동기화
    • Thread 동기화 처리 - lock 예약어를 통한 동기화
    • 원자적 연산과 Interlocked 타입
    • ThreadPool
    • Thread 동기화 처리 - EventWaitHandle을 통한 동기화
    • 동기 호출과 비동기 호출

  • #17. C# 5.0으로 올라서기
    • 호출자 정보(Caller Information)
    • async/await 예약어
    • Task 타입 (C# 4.0)
    • Task와 ThreadPoolQueueUserWorkItem (C# 4.0)
    • await와 병렬 처리
    • catch 블록에서의 await (C# 6.0)

5. 진행

5.1. 내용 요약

5.1.1. 15. BCL Part.3

  • 파일에 대해 입출력 작업을 하려면 파일 스트림을 열어야 한다.
  • FileMode, FileShare, FileAccess 등을 통해 파일 스트림에 파일의 개방 방식, 수정 방식, 공유 방식등을 제어할 수 있다.
  • File 정적 메서드와 FileInfo 인스턴스 메서드를 사용하면 대부분의 파일 I/O 작업을 손쉽게 처리할 수 있다.
  • Directory 정적 메서드와 DirectoryInfo 인스턴스 메서드를 사용하면 대부분의 폴더 I/O 작업을 손쉽게 처리할 수 있다.
  • Path 정적 메서드를 통해 파일/폴더 경로와 그 이름에 대한 작업을 손쉽게 처리할 수 있다.

5.1.2. 16. BCL Part.4

  • 스레드(Thread)는 CPU의 명령어를 수행하는 스케줄링 단위를 말한다.
  • Join, Sleep 등의 메서드를 통해 스레드의 상태를 제어할 수 있다.
  • 전경 스레드(Foreground Thread)는 프로그램 종료에 영향을 주지만, 배경 스레드(Background Thread)는 프로그램 종료에 영향을 미치지 않는다.
  • Monitor 클래스를 통해 다중 스레드에 대한 동기화 처리를 지원할 수 있다.
  • Monitor 클래스 사용 패턴을 단순화시킨 lock 예약어를 통해 동기화 처리를 지원할 수 있다.
  • 더 이상 나뉠 수 없는 원자적 연산에 대해서는 Interlocked 타입을 통해 동기화 처리를 지원할 수 있다.
  • ThreadPool은 재사용 가능한 스레드들의 집합을 얘기하며, 이 Pool을 통해 다중 스레드를 처리할 수 있다.
  • EventWaitHandle을 통해서도 스레드에 대한 동기화 처리를 지원할 수 있다.
  • 동기 호출은 호출 시 제어가 차단되지만, 비동기 호출은 제어가 차단되지 않고 별도의 ThreadPool에서 스레드를 얻어와서 실행한다.

5.1.3. 17. C# 5.0으로 올라서기

  • 호출자 정보를 사용하면 파일명, 호출 메서드 이름, 라인 번호를 얻어낼 수 있다.
  • async/await 예약어를 통해 동기 호출과 비슷하지만 비동기 호출인 코드를 작성할 수 있다.
  • Task 타입을 사용하여 ThreadPool에서 스레드를 얻어와 실행하는 코드를 작성할 수 있다.
  • Task 타입은 QueueUserWorkItem과 달리 반환된 결과값을 사용할 수 있다는 중요한 차이점이 있다.
  • C# 6.0에서는 catch 블록에서도 await 키워드를 적용시킬 수 있다.

5.2. 그 외

6. 덧글


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:43
Processing time 0.0306 sec