Presentation is loading. Please wait.

Presentation is loading. Please wait.

Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스

Similar presentations


Presentation on theme: "Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스"— Presentation transcript:

1 Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
4부에서는 주요 클래스 라이브러리를 기술하였다. 10장에서는 다중 스레드의 개념과 스레드를 사용하여 프로그램을 작성하는 방법에 관해 기술하였다. 11장에서는 패키지와 자바 프로그램에서 많이 사용되는 주요 클래스에 관해 기술하였다. 12장에서는 입출력에 관해 예제를 통하여 상세하게 기술하였으며, 13장에서는 네트워킹 프로그램 작성 방법에 관해 기술하였다.

2 다중 스레드 CHAPTER 10 Section 1 스레드 개요 Section 2 Thread 클래스와 스레드 생명주기
Section 6 스레드 동기화(Synchronization) Section 7 스레드 사이의 통신

3 Section 1 스레드 개요 스레드 개요 스레드 : 실행중인 프로그램 다중 스레드 : 다수개의 스레드가 동시에 수행되는 형태
자바는 다중 스레드의 기능을 실행 시스템과는 상관없이 JVM에 내장된 형태로 구현

4 Section 1 스레드 개요 스레드 개요

5 Section 2 Thread 클래스와 스레드 생명주기
JDK에서 Thread 클래스 제공

6 Section 2 Thread 클래스와 스레드 생명주기

7 Section 2 Thread 클래스와 스레드 생명주기
스레드는 탄생에서 소멸될 때까지 생명주기를 가진다

8 Section 3 스레드의 생성과 사용 스레드 생성 두 가지 형태로 스레드를 생성하여 사용
Thread 클래스로부터 상속받아 스레드 특성을 가진 클래스를 생성 Runable 인터페이스를 이용(이미 클래스가 다른 클래스로부터 상속받고 있는 경우)하여 스레드 클래스 생성

9 Section 3 스레드의 생성과 사용 Thread 클래스 이용
Thread 클래스의 run() 메소드를 오버라이딩하여 스레드의 동작을 기술

10 Section 3 스레드의 생성과 사용 Runnable 인터페이스 이용

11 Section 3 스레드의 생성과 사용 스레드의 생성과 사용

12 Section 3 스레드의 생성과 사용 스레드의 생성과 사용

13 Section 3 스레드의 생성과 사용 스레드의 생성과 사용

14 Section 4 스레드 우선순위 스레드 우선순위 스레드에 우선순위를 부여하여 빨리 실행시킬 수 있다
Thread 클래스에서 우선순위를 지정하기 위한 상수 제공

15 Section 4 스레드 우선순위 스레드 우선순위

16 Section 5 스레드의 시작과 종료 스레드의 시작과 종료
다중 스레드에서 다수개의 스레드는 start() 메소드에 의해 시작된다 다중 스레드가 다수개의 흐름으로 실행된다 다중 스레드 수행 후 실행 흐름을 하나로 만들기 위해서 join() 메소드를 사용한다

17 Section 5 스레드의 시작과 종료 스레드의 시작과 종료

18 Section 5 스레드의 시작과 종료 스레드의 시작과 종료

19 Section 6 스레드 동기화(Synchronization)
다중 스레드로 해결해야 하는 문제들 대부분은 다수개의 스레드가 서로 연관되어 실행되어야 하는 문제이다. 공용으로 사용하는 프린터의 출력 용지 count TV에서 모금하는 성금의 총 합계 여러명이 사용하는 하나의 화장실 문제 등 다수개의 스레드가 서로 연관될 때, 한 순간에는 하나의 스레드만 수행하여야 하는 상호 배타적 문제가 발생 상호 배타적으로 수행해야 하는 영역을 임계영역(critical section)이라 한다 자바는 임계영역을 지정하기 위해 synchronized 메소드를 제공

20 Section 6 스레드 동기화(Synchronization)
스레드 동기화 : 임계영역

21 Section 6 스레드 동기화(Synchronization)

22 Section 6 스레드 동기화(Synchronization)

23 Section 7 스레드 사이의 통신 스레드 사이의 통신 문제 해결을 위해 스레드 사이의 통신이 필요로 되는 경우가 많다
생산자-소비자 문제 은행의 예금-출금 문제 등 자바는 스레드 사이의 통신을 위해 Object 클래스(자바의 최상위 클래스이므로 어떠한 클래스에서도 사용가능) 에서 wait(), notify(), notifyAll() 메소드를 제공하고 있다

24 Section 7 스레드 사이의 통신 스레드 사이의 통신 : wait(), notify(), notifyAll()

25 Section 7 스레드 사이의 통신 스레드 사이의 통신

26 스레드 개요 Thread 클래스와 스레드 생명주기 Chapter 10 학습정리
① 스레드는 실행 중인 프로세스라 할 수 있으며, 하나의 프로그램에 다수 개의 스레드를 실행시킬 수 있다. ② 한 개의 CPU를 가진 컴퓨터에서 스레드는 CPU에 의해 돌아가며 수행되게 된다. Thread 클래스와 스레드 생명주기 ① 자바에서는 스레드를 지원하기 위해 Thread 클래스를 제공하고 있다. ② 스레드 클래스는 스레드를 지원하는 다양한 메소드를 가지고 있다. ③ 스레드는 생성, 실행 가능 상태, 실행 상태, 대기 상태 등의 생명주기를 가지고 있다.

27 스레드의 생성과 사용 스레드의 우선순위 Chapter 10 학습정리 ① 자바에서 스레드는 두 가지 방법으로 사용이 가능하다.
② Thread 클래스로부터 상속받아 스레드를 사용하는 방법과 Runnable 인터페이스를 포함하여 스레드 클래스를 사용하는 방법이 있으며, 현재의 클래스가 다른 클래스로부터 이미 상속을 받고 있는 경우에 Runnable 인터페이스를 이용하여 스레드를 작성한다. 스레드의 우선순위 ① 각각의 스레드는 1~10 사이의 우선순위를 가질 수 있다. ② CPU는 실행 가능 상태의 스레드 중에서 우선순위가 높은 스레드를 먼저 수행한다.

28 스레드의 시작과 종료 스레드 동기화 Chapter 10 학습정리
① 다중 스레드를 가진 프로그램에서 start() 메소드에 의해 스레드가 시작되면, 프로그램의 흐름이 단일 흐름에서 다중 흐름으로 전환된다. ② 다중 스레드는 동시 수행되는 개념이므로 스레드가 수행을 마치고 다시 단일 흐름으로 프로그램을 실행시키기 위해서는 join() 메소드를 이용하여 흐름을 하나로 만들어야 한다. 스레드 동기화 ① 다수 개의 스레드가 임계영역을 수행하기 위해서는 synchronized 메소드를 사용해야 한다. ② synchronized 메소드는 한순간에 하나의 스레드만 실행할 수 있다. ③ 한 스레드가 동기화 메소드를 수행 중이면 다른 스레드는 대기해야 한다.

29 Chapter 10 학습정리 스레드 사이의 통신 ① 스레드 사이의 통신을 위해 wait(), notify(), notifyAll() 메소드가 사용되며, 이러한 메소드는 Object 클래스에 제공하고 있다. ② notify() 메소드는 대기 상태에 있는 스레드를 깨우는 역할을 한다.


Download ppt "Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스"

Similar presentations


Ads by Google