LinuxUNIX Programming APUE Thread Programming IT vs Page

  • Slides: 25
Download presentation
Linux/UNIX Programming APUE (Thread Programming) 문양세 강원대학교 IT대학 컴퓨터과학전공

Linux/UNIX Programming APUE (Thread Programming) 문양세 강원대학교 IT대학 컴퓨터과학전공

단일 vs 다중 스레드 프로세스 Page 3 APUE (Thread Programming) Operating Systems by Yang-Sae

단일 vs 다중 스레드 프로세스 Page 3 APUE (Thread Programming) Operating Systems by Yang-Sae Moon

주요 스레드 라이브러리 APUE (Thread Programming) Linux/Unix • POSIX Pthreads • Mach C-threads, Solaris

주요 스레드 라이브러리 APUE (Thread Programming) Linux/Unix • POSIX Pthreads • Mach C-threads, Solaris Threads Windows: Win 32 Threads JVM: Java Threads (Thread class, Runnable interface) Page 6 UNIX System Programming by Yang-Sae Moon

Simple Example 1 (1/4) APUE (Thread Programming) v 스레드 기능: 1에서 n까지의 합을 구함

Simple Example 1 (1/4) APUE (Thread Programming) v 스레드 기능: 1에서 n까지의 합을 구함 Page 8 UNIX System Programming by Yang-Sae Moon

Simple Example 1 (2/4) APUE (Thread Programming) Page 9 UNIX System Programming by Yang-Sae

Simple Example 1 (2/4) APUE (Thread Programming) Page 9 UNIX System Programming by Yang-Sae Moon

Simple Example 1 (3/4) APUE (Thread Programming) Page 10 UNIX System Programming by Yang-Sae

Simple Example 1 (3/4) APUE (Thread Programming) Page 10 UNIX System Programming by Yang-Sae Moon

Simple Example 1 (4/4) APUE (Thread Programming) v Page 11 UNIX System Programming by

Simple Example 1 (4/4) APUE (Thread Programming) v Page 11 UNIX System Programming by Yang-Sae Moon

Simple Example 2 (1/4) APUE (Thread Programming) 스레드 10개를 생성하고, 각각은 Hello world!를 출력함

Simple Example 2 (1/4) APUE (Thread Programming) 스레드 10개를 생성하고, 각각은 Hello world!를 출력함 Page 12 UNIX System Programming by Yang-Sae Moon

Simple Example 2 (2/4) APUE (Thread Programming) Page 13 UNIX System Programming by Yang-Sae

Simple Example 2 (2/4) APUE (Thread Programming) Page 13 UNIX System Programming by Yang-Sae Moon

Simple Example 2 (3/4) APUE (Thread Programming) Page 14 UNIX System Programming by Yang-Sae

Simple Example 2 (3/4) APUE (Thread Programming) Page 14 UNIX System Programming by Yang-Sae Moon

Simple Example 2 (4/4) APUE (Thread Programming) Page 15 UNIX System Programming by Yang-Sae

Simple Example 2 (4/4) APUE (Thread Programming) Page 15 UNIX System Programming by Yang-Sae Moon

Creating Threads – pthread_create() APUE (Thread Programming) #include <pthread. h> int pthread_create( pthread_t *thread,

Creating Threads – pthread_create() APUE (Thread Programming) #include <pthread. h> int pthread_create( pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); thread: 생성된 스레드의 식별자를 리턴할 변수 attr: 생성할 스레드의 속성 (default: NULL) start_routine: 스레드가 수행할 함수 arg: 스레드 함수에 주어질 argument Page 16 UNIX System Programming by Yang-Sae Moon

More Example 1 (1/3) APUE (Thread Programming) 동일 함수인데 서로 다른 메시지를 출력하는 두

More Example 1 (1/3) APUE (Thread Programming) 동일 함수인데 서로 다른 메시지를 출력하는 두 개의 스레드 Page 17 UNIX System Programming by Yang-Sae Moon

More Example 1 (2/3) APUE (Thread Programming) Page 18 UNIX System Programming by Yang-Sae

More Example 1 (2/3) APUE (Thread Programming) Page 18 UNIX System Programming by Yang-Sae Moon

More Example 1 (3/3) APUE (Thread Programming) Page 19 UNIX System Programming by Yang-Sae

More Example 1 (3/3) APUE (Thread Programming) Page 19 UNIX System Programming by Yang-Sae Moon

Pthreads 동작 절차 APUE (Thread Programming) 앞서 두 개의 스레드가 생성되는 경우의 예제 Page

Pthreads 동작 절차 APUE (Thread Programming) 앞서 두 개의 스레드가 생성되는 경우의 예제 Page 20 UNIX System Programming by Yang-Sae Moon

More Example 2 (1/3) APUE (Thread Programming) 네 개의 스레드가 다소 복잡한 수학 계산을

More Example 2 (1/3) APUE (Thread Programming) 네 개의 스레드가 다소 복잡한 수학 계산을 수행하는 예제 Page 21 UNIX System Programming by Yang-Sae Moon

More Example 2 (2/3) APUE (Thread Programming) Page 22 UNIX System Programming by Yang-Sae

More Example 2 (2/3) APUE (Thread Programming) Page 22 UNIX System Programming by Yang-Sae Moon

More Example 2 (3/3) APUE (Thread Programming) Page 23 UNIX System Programming by Yang-Sae

More Example 2 (3/3) APUE (Thread Programming) Page 23 UNIX System Programming by Yang-Sae Moon

데이터 공유와 동기화 APUE (Thread Programming) 스레드간 데이터 공유는 전역 변수(global variable)나 공유 메모리

데이터 공유와 동기화 APUE (Thread Programming) 스레드간 데이터 공유는 전역 변수(global variable)나 공유 메모리 (shared memory)를 사용하여 가능하다. 동기화는? • mutex, conditional variables, semaphore 등을 사용하여 해결한다. • 관심 있는 학생은 Linux System Programming(Robert Love)을 참조하세요. Page 24 UNIX System Programming by Yang-Sae Moon

Homework#13 APUE (Thread Programming) Page 25 UNIX System Programming by Yang-Sae Moon

Homework#13 APUE (Thread Programming) Page 25 UNIX System Programming by Yang-Sae Moon