Difference between r1.2 and the current
@@ -4,10 +4,10 @@
* 종료!
== 참가자 ==
== 진행 시간 ==
== 진행 예정 내용 ==
* 다소 중요하다고 생각된 내용은 [[HTML(<font color="#9933ff"><b>보라색 볼드(굵게)</b></font>)]] 처리하였습니다.
== 참가자 ==
* [신형철], [박인서]
* [신형철], [박인서], [성훈]
== 진행 시간 ==
* 14시 30분 ~
* 14시 30분 ~ 17시
== 진행 예정 내용 ==
* 다소 중요하다고 생각된 내용은 [[HTML(<font color="#9933ff"><b>보라색 볼드(굵게)</b></font>)]] 처리하였습니다.
@@ -22,8 +22,8 @@
* [[HTML(<font color="#9933ff"><b>Thread</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 상태 제어</b></font>)]]
* [[HTML(<font color="#9933ff"><b>전경 스레드와 배경 스레드</b></font>)]]
* [[HTML(<font color="#9933ff"><b>ThreadPool</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 동기화 처리 - EventWaitHandle을 통한 동기화</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 상태 제어</b></font>)]]
* [[HTML(<font color="#9933ff"><b>전경 스레드와 배경 스레드</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 동기화 처리 - Monitor를 통한 객체 잠금</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 동기화 처리 - lock 예약어를 통한 객체 잠금</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 동기화 처리 - Monitor를 통한 동기화</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 동기화 처리 - lock 예약어를 통한 동기화</b></font>)]]
* [[HTML(<font color="#9933ff"><b>원자적 연산과 Interlocked 타입</b></font>)]]* [[HTML(<font color="#9933ff"><b>ThreadPool</b></font>)]]
* [[HTML(<font color="#9933ff"><b>Thread 동기화 처리 - EventWaitHandle을 통한 동기화</b></font>)]]
@@ -40,8 +40,30 @@
== 진행 ==
=== 내용 요약 ===
==== 15. BCL Part.3 ====
==== 16. BCL Part.4 ====
==== 17. C# 5.0으로 올라서기 ====
=== 그 외 ===
== 덧글 ==
--------------------------------
=== 내용 요약 ===
==== 15. BCL Part.3 ====
* 파일에 대해 입출력 작업을 하려면 파일 스트림을 열어야 한다.
* FileMode, FileShare, FileAccess 등을 통해 파일 스트림에 파일의 개방 방식, 수정 방식, 공유 방식등을 제어할 수 있다.
* File 정적 메서드와 FileInfo 인스턴스 메서드를 사용하면 대부분의 파일 I/O 작업을 손쉽게 처리할 수 있다.
* Directory 정적 메서드와 DirectoryInfo 인스턴스 메서드를 사용하면 대부분의 폴더 I/O 작업을 손쉽게 처리할 수 있다.
* Path 정적 메서드를 통해 파일/폴더 경로와 그 이름에 대한 작업을 손쉽게 처리할 수 있다.
* 스레드(Thread)는 CPU의 명령어를 수행하는 스케줄링 단위를 말한다.
* Join, Sleep 등의 메서드를 통해 스레드의 상태를 제어할 수 있다.
* 전경 스레드(Foreground Thread)는 프로그램 종료에 영향을 주지만, 배경 스레드(Background Thread)는 프로그램 종료에 영향을 미치지 않는다.
* Monitor 클래스를 통해 다중 스레드에 대한 동기화 처리를 지원할 수 있다.
* Monitor 클래스 사용 패턴을 단순화시킨 lock 예약어를 통해 동기화 처리를 지원할 수 있다.
* 더 이상 나뉠 수 없는 원자적 연산에 대해서는 Interlocked 타입을 통해 동기화 처리를 지원할 수 있다.
* ThreadPool은 재사용 가능한 스레드들의 집합을 얘기하며, 이 Pool을 통해 다중 스레드를 처리할 수 있다.
* EventWaitHandle을 통해서도 스레드에 대한 동기화 처리를 지원할 수 있다.
* 동기 호출은 호출 시 제어가 차단되지만, 비동기 호출은 제어가 차단되지 않고 별도의 ThreadPool에서 스레드를 얻어와서 실행한다.
* 호출자 정보를 사용하면 파일명, 호출 메서드 이름, 라인 번호를 얻어낼 수 있다.
* async/await 예약어를 통해 동기 호출과 비슷하지만 비동기 호출인 코드를 작성할 수 있다.
* Task 타입을 사용하여 ThreadPool에서 스레드를 얻어와 실행하는 코드를 작성할 수 있다.
* Task 타입은 QueueUserWorkItem과 달리 반환된 결과값을 사용할 수 있다는 중요한 차이점이 있다.
* C# 6.0에서는 catch 블록에서도 await 키워드를 적용시킬 수 있다.
== 덧글 ==
--------------------------------
4. 진행 예정 내용 ¶
- 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.
- #15. BCL Part.3
- FileStream, FileMode
- File 클래스와 FileInfo 클래스
- Directory 클래스와 DirectoryInfo 클래스
- Path 타입
- FileStream, FileMode
- #16. BCL Part.4
- Thread
- Thread 상태 제어
- 전경 스레드와 배경 스레드
- Thread 동기화 처리 - Monitor를 통한 동기화
- Thread 동기화 처리 - lock 예약어를 통한 동기화
- 원자적 연산과 Interlocked 타입
- ThreadPool
- Thread 동기화 처리 - EventWaitHandle을 통한 동기화
- 동기 호출과 비동기 호출
- Thread
- #17. C# 5.0으로 올라서기
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에서 스레드를 얻어와서 실행한다.