최신 멀티코어에서 주목 받고 있는

Pthread 내부구조 분석

수강대상

Multi Thread 관련 개발자
thread의 내부동작을 알고 싶은 개발자

선수과정

기초 C 프로그래밍
고급 C 프로그래밍
기초 C++ 프로그래밍
리눅스 프로그래밍
시스템 프로그래밍

강의환경

Ubuntu 16.04 LTS

우리가 최근에는 모든 프로그램에서 쉽게 볼수 있는 것이 Thread 관련 프로그램입니다.
리눅스 커널도 내부적으로 멀티 쓰레드로 동작하고, 안드로이드의 모든 서비스도 멀티 쓰레드 기반으로 동작합니다.
이에 소스코드를 분석할 일도 많고 멀티쓰레드로 구현할 일도 많아 졌습니다. 그런데 정작 프로그램구현은 단순히 함수의
사용법 만으로는 구현이 매우 어렵습니다. 그 이유는 Thread의 개념 자체가 애매하고 어떻게 구현하는 것이 올바른가를
모르기 때문입니다.

Thread를 공부하는 것은 책으로도 선배의 조언으로도 가능 하겠지만
가장 명확한 이해는 구현된 pthread의 소스를 분석하는 것입니다. 이는 JAVA, C#, windows 개발자에게도 적용됩니다.
thread의 open 소스가 pthread이기 때문입니다.

이에 본과정 에서는

- pthread의 소스 분석을 통해 thread의 생성 , 실행, 소멸 과정을 이해합니다.
- pthread mutex코드 분석을 통해 locking의 개념을 알아 봅니다.
- pthread의 조건변수 코드 분석을 통해 동기화에 대한 개념을 이해하고 활용하여 구현합니다.
- pthread를 이용한 class의 구현법을 android 소스코드를 통해 이해합니다.
- pthread의 tsd 소스코드를 통해 tls의 개념을 명확히 이해 합니다.
- Looper의 코드 분석을 통해 thread간 통신 개념을 이해합니다.

모든 과정은 철저히 소스 분석위주로 학습을 진행합니다.
소스 코드의 분석은 ppt를 이용하여 도식하여 정리하고 배포합니다.

Thread관련 개발자나 Thread의 내부 구조에 관심 있는 모든 개발자에게 권장합니다.

  • Section1. pthread_create 분석
    • Thread의 생성시 메모리 및 자료구조의 초기화 과정 이해
  • Section2. pthread_exit 분석
    • Thread 소멸시 메모리 및 자료구조의 cleanup 과정 이해
  • Section3. pthread_mutex 분석
    • pthread의 mutex를 이용한 locking과 재귀적 locking에 대해 이해
  • Section4. pthread_cond 분석
    • pthread의 조건 변수를 통한 동기화 제어 이해
  • Section5. pthread_key 분석
    • pthread의 key를 이용한 동적 tls관리와 동작에 대해 분석
    • IPCThreadState Class 분석을 통해 Thread Singletone 이해
  • Section6. Thread Class 분석
    • pthread의 class구조인 Thread class의 구현 이해
  • Section7. Looper Class 분석
    • Thread간 비동기 통신 메커니즘인 Looper의 소스를 분석