Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

노인복지론 담당교수 : 최 병태 교수님 학과 : 보건복지경영학과 학번 : 이름 : 김 태인 날짜 :
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
노령화/저성장/위험사회의 청년 -지속가능한 삶을 위한 조건과 연대 2015년 12월 3일 대구사회 혁신 아카데미 조한 혜정.
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
Meniett User Guide 작동 방법 버튼의 표시 의미 및 점검 사항 숙지 사항 충전 방법 a
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
고급자바프로그래밍 (Advanced Java Programming)
6장 java.applet.Applet의 네트워크 메쏘드들
미국경제의 신용위기가 한국경제에 미치는 영향
유 제 흥 지원업체 분석 및 잡서칭 스킬 유 제 흥
몰랑이의 햄버거 만들기大 작전 click!.
아하! 청소년의 성교육은 이렇게!.
연장근로와 야간·휴일근로 김영호 노무사 나눔 노사관계연구소 소장 연세대 일반대학원 박사 수료 고려사이버대 법학과 외래교수
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
명품 JAVA Essential.
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
제8장 쓰레드 프로그래밍.
프로세스 관리.
[ 단원 08 ] 예외처리와 스레드.
Java로 배우는 디자인패턴 입문 Chapter 20. Flyweight 동일한 것을 공유해서 낭비를 없앤다
CPU스케줄링(CPU Scheduling) ~
쓰레드 프로그래밍 Youngnam Kim.
최용술 장 Thread 최용술
명품 JAVA Essential.
10장 다중 스레드 10.1 스레드 개요 10.2 Thread 클래스 10.3 스레드 생성
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
Chapter2 프로세스란 조은성.
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
Subject : Thread Written by: 김형근,류명운.
고구려,백제,신라의 건국과 발전 Start!
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
3장 운영체제 2C 김주성.
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
자바 5.0 프로그래밍.
국제의료관광 관련 법, 제도.
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
2. 윤리학의 원리와 적용 가. 상대주의와 절대주의.
남아메리카 선교 김수정, 이하정 전희진, 장성경.
제8장 쓰레드 프로그래밍.
사회복지사무소 시범사업 안내 보 건 복 지 부
중등교원 전보시스템 로그인 오류시 해결 해결방안 * 작성일 2016 년 12 월 15일 * 작성자 광주광역시교육청.
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
나의 포트폴리오 영동대학교 2014.
C 프로그램을 위한 동시성 커버리지 측정 기법 송지영 SWTV KAIST.
강의 프레젠테이션 현대 사회와 미디어 12강. 미디어 문화.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
홍미영 부평구 재정 및 운영방향 인천광역시 부평구.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
제8장 쓰레드 프로그래밍.
내 마음 다해 내마음다해 주이름찬양해- 주사랑 깊어 말로다못하 네 주앞서 1-4.
영상으로 읽는 한국사 02 삼국은 서로를 한 ‘민족’으로 생각했나? - 삼국통일의 의미-.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
삶을 풍요롭게 만드는 의사소통.
Java Programming for Beginners
Concurrency: Deadlock and Starvation
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
Chapter 7: Deadlocks.
Presentation transcript:

Java의 정석 제 12 장 쓰레드(thread) Java 정석 2009. 7. 31 남궁성 강의 Chapter 12. 쓰레드(thread) http://www.javachobo.com Java의 정석 제 12 장 쓰레드(thread) 2009. 7. 31 남궁성 강의 castello@naver.com

1.1 프로세스와 쓰레드(process & thread) (1) Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.1 프로세스와 쓰레드(process & thread) (1) ▶ 프로그램 : 실행 가능한 파일(HDD) ▶ 프로세스 : 실행 중인 프로그램(메모리) 2 2

1.1 프로세스와 쓰레드(process & thread) (2) Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.1 프로세스와 쓰레드(process & thread) (2) ▶ 프로세스 : 실행 중인 프로그램, 자원(resources)과 쓰레드로 구성 ▶ 쓰레드 : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 하나 이상의 쓰레드를 가지고 있다. 프로세스 : 쓰레드 = 공장 : 일꾼 ▶ 싱글 쓰레드 프로세스 = 자원+쓰레드 쓰레드(일꾼) 프로세스(공장) ▶ 멀티 쓰레드 프로세스 = 자원+쓰레드+쓰레드+…+쓰레드 … 3 3

vs. Java 1.2 멀티프로세스 vs. 멀티쓰레드 정석 “하나의 새로운 프로세스를 생성하는 것보다 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.2 멀티프로세스 vs. 멀티쓰레드 “하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다.” - 2 프로세스 1 쓰레드 vs. 1 프로세스 2 쓰레드 vs. 4 4

“프로그래밍할 때 고려해야 할 사항들이 많다.” Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.3 멀티쓰레드의 장단점 “많은 프로그램들이 멀티쓰레드로 작성되어 있다. 그러나, 멀티쓰레드 프로그래밍이 장점만 있는 것은 아니다.” 장점 - 자원을 보다 효율적으로 사용할 수 있다. 사용자에 대한 응답성(responseness)이 향상된다. 작업이 분리되어 코드가 간결해 진다. “여러 모로 좋다.” 단점 동기화(synchronization)에 주의해야 한다. 교착상태(dead-lock)가 발생하지 않도록 주의해야 한다. 각 쓰레드가 효율적으로 고르게 실행될 수 있게 해야 한다. “프로그래밍할 때 고려해야 할 사항들이 많다.” 5 5

Java 1.4 쓰레드의 구현과 실행 정석 의 Chapter 12. 쓰레드(thread) 6 6 http://www.javachobo.com 1.4 쓰레드의 구현과 실행 6 6

Java 1.5 start() & run() 정석 의 Chapter 12. 쓰레드(thread) 7 7 http://www.javachobo.com 1.5 start() & run() 7 7

Java 1.6 싱글쓰레드 vs. 멀티쓰레드(1) 정석 ▶ 싱글쓰레드 ▶ 멀티쓰레드 의 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.6 싱글쓰레드 vs. 멀티쓰레드(1) ▶ 싱글쓰레드 ▶ 멀티쓰레드 A B t(시간) t(시간) B A A B t(시간) 8 8

Java 1.6 싱글쓰레드 vs. 멀티쓰레드(2) 정석 ▶ 싱글쓰레드 ▶ 멀티쓰레드 의 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.6 싱글쓰레드 vs. 멀티쓰레드(2) A B t(시간) ▶ 싱글쓰레드 사용자 입력을 기다리는 구간 t(시간) A B ▶ 멀티쓰레드 9 9

1.7 쓰레드의 우선순위(priority of thread) Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.7 쓰레드의 우선순위(priority of thread) “작업의 중요도에 따라 쓰레드의 우선순위를 다르게 하여 특정 쓰레드가 더 많은 작업시간을 갖도록 할 수 있다. ” t(시간) B A ▶ 우선순위가 같은 경우 ▶ A의 우선순위가 높은 경우 t(시간) A B 10 10

Java 1.8 쓰레드 그룹(ThreadGroup) 정석 - 서로 관련된 쓰레드를 그룹으로 묶어서 다루기 위한 것 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.8 쓰레드 그룹(ThreadGroup) - 서로 관련된 쓰레드를 그룹으로 묶어서 다루기 위한 것 - 모든 쓰레드는 반드시 하나의 쓰레드 그룹에 포함되어 있어야 한다. - 쓰레드 그룹을 지정하지 않고 생성한 쓰레드는 ‘main쓰레드 그룹’에 속한다. - 자신을 생성한 쓰레드(조상 쓰레드)의 그룹과 우선순위를 상속받는다. 11 11

Java 1.9 데몬 쓰레드(daemon thread) 정석 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.9 데몬 쓰레드(daemon thread) - 일반 쓰레드(non-daemon thread)의 작업을 돕는 보조적인 역할을 수행. - 일반 쓰레드가 모두 종료되면 자동적으로 종료된다. - 가비지 컬렉터, 자동저장, 화면자동갱신 등에 사용된다. - 무한루프와 조건문을 이용해서 실행 후 대기하다가 특정조건이 만족되면 작업을 수행하고 다시 대기하도록 작성한다. * setDaemon(boolean on)은 반드시 start()를 호출하기 전에 실행되어야 한다. 그렇지 않으면 IllegalThreadStateException이 발생한다. 12 12

Java 1.10 쓰레드의 실행제어 정석 의 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.10 쓰레드의 실행제어 * resume(), stop(), suspend()는 쓰레드를 교착상태로 만들기 쉽기 때문에 deprecated되었다. 13 13

1.11 쓰레드의 상태(state of thread) Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.11 쓰레드의 상태(state of thread) 14 14

Java 1.12 쓰레드의 실행제어 – Example1 정석 의 Chapter 12. 쓰레드(thread) 15 15 http://www.javachobo.com 1.12 쓰레드의 실행제어 – Example1 15 15

Java 1.12 쓰레드의 실행제어 – Example2 정석 의 Chapter 12. 쓰레드(thread) 16 16 http://www.javachobo.com 1.12 쓰레드의 실행제어 – Example2 16 16

1.13 쓰레드의 동기화 - synchronized Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.13 쓰레드의 동기화 - synchronized - 한 번에 하나의 쓰레드만 객체에 접근할 수 있도록 객체에 락(lock)을 걸어서 데이터의 일관성을 유지하는 것. 17 17

Java 1.13 쓰레드의 동기화 - Example 정석 의 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.13 쓰레드의 동기화 - Example ▶Synchronized없을 때 ▶Synchronized있을 때 18 18

1.14 쓰레드의 동기화 – wait(), notify(), notifyAll() Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.14 쓰레드의 동기화 – wait(), notify(), notifyAll() - 동기화의 효율을 높이기 위해 wait(), notify()를 사용. - Object클래스에 정의되어 있으며, 동기화 블록 내에서만 사용할 수 있다. ▶wait() – 객체의 lock을 풀고 해당 객체의 쓰레드를 waiting pool에 넣는다. ▶notify() – waiting pool에서 대기중인 쓰레드 중의 하나를 깨운다. ▶notifyAll() – waiting pool에서 대기중인 모든 쓰레드를 깨운다. 19 19

Java 1.14 쓰레드의 동기화 – Example2 정석 의 Chapter 12. 쓰레드(thread) 20 20 http://www.javachobo.com 1.14 쓰레드의 동기화 – Example2 20 20

1.14 쓰레드의 동기화 – Example2-1 improved Java 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 1.14 쓰레드의 동기화 – Example2-1 improved 21 21

감사합니다. http://www.javachobo.com Java 정석 의 정석 Chapter 12. 쓰레드(thread) http://www.javachobo.com 감사합니다. 더 많은 동영상강좌를 아래의 사이트에서 구하실 수 있습니다. http://www.javachobo.com 이 동영상강좌는 비상업적 용도일 경우에 한해서 저자의 허가없이 배포하실 수 있습니다. 그러나 일부 무단전제 및 변경은 금지합니다. 관련문의 : 남궁성 castello@naver.com