17
Subject : Thread Written by: 김김김 , 김김김

[명우니닷컴]자바 스레드에 대해

Embed Size (px)

Citation preview

Page 1: [명우니닷컴]자바 스레드에 대해

Subject : Thread

Written by: 김형근 ,류명운

Page 2: [명우니닷컴]자바 스레드에 대해

본 발표 내용은 스레드의 개념과 통신 프로그램에서 사용되는 스레드 내용입니다 .

Page 3: [명우니닷컴]자바 스레드에 대해

Process

Multi Thread Single Thread

OS

스레드의 개념 이해

Page 4: [명우니닷컴]자바 스레드에 대해

자바에서의 스레드란 ?

자바는 비동기적 작동 방식 ( 독립스레드 ) 에 대한 개념이 없음 하지만 , 자바가 실행되는 기반인 자바가상머신 (JVM) 자체가 하나의 프로세스이기 때문에 언어적 차원에서 스레드의 동기화 지원이 가능

간단한 프로그램을 작성할 때에도 스레드를 사용대부분의 API 클래스들은 이미 내부적으로 스레드를 구현하여 사용 - ex) 소켓

따라서 자바에서의 스레드란 JVM(Java Virtual Machine) 에 의해 호출될 수 있는 가장 작은단위

Page 5: [명우니닷컴]자바 스레드에 대해

자바에서의 스레드 종류

메인스레드( 시스템스레드 )

워킹스레드( 사용자스레드 )

Page 6: [명우니닷컴]자바 스레드에 대해

자바에서의 스레드 종류

단일스레드(Single-thread)

멀티스레드(Multi-thread)

Page 7: [명우니닷컴]자바 스레드에 대해

자바에서의 스레드 종류

독립스레드 종속스레드( 데몬스레드 )

Page 8: [명우니닷컴]자바 스레드에 대해

자바에서의 스레드 Q&A

자바에서의 스레드 중 JVM 에 의해 기본적으로 생성되는 스레드 외에 사용자에 의해 생성되는 스레드는 어떠한 경우인가 ?

-> 사용자가 프로그램을 개발함에 있어 멀티스레드를 구현하기 위해

-> 독립스레드 : 멀티스레드 프로그램을 위해 종속스레드 : 독립스레드를 돕기 위해

사용자에 의해 생성되는 스레드는 어떠한 종류가 있으며 , 각 스레드는 어떠한 경우에 사용되는가 ?

Page 9: [명우니닷컴]자바 스레드에 대해
Page 10: [명우니닷컴]자바 스레드에 대해

Thread1. Thread M ㅔ thod

2. Thread ㄹ ifecycle3. Si ㅇ gle Thread Mul ㅌ i

Thread4. Thread in Chat ㅍ rogram

Page 11: [명우니닷컴]자바 스레드에 대해

Thread 의 메소드 내용void run()

JVM 에 의해 호출개발자는 반드시 오버라이딩void start()

JVM 에 스레드 실행 시작Run() 실행

void inter-rupt()

스레드 강제종료

Static void yield()

다른 스레드에게 실행 양보스케드 스케줄링 시행 ->다른 스레드 선택하여 실행void join() 스레드가 종료할 때까지 기다린다 .

Static void sleep(long mills)

쓰레드는 mills 시간 동안 잔다 .Mills 의 단위는 밀리초

void setPrior-ity(int n) 스레드의 우선순위 값을 n 변경

Thread M ㅔ thod

Page 12: [명우니닷컴]자바 스레드에 대해

Thread A = new Thread()

NEW( 탄생 )

RUNNABLE( 준비 )

RUNNABLE(running, 실행 중 )

Run() 또는 JVM Scheduling

yield()

실행

종료

BLOCK( 봉쇄 )

Synchronized orI/O 작업요청

JoinTIME_WAITING

Join()

TIME_WAITING( 시간대기 )

Sleep()

WAITTING( 대기 )Objec-t.wait()

Object.notify();Object.notifyAll();

ThreadB

타임아웃interrupt

I/O 작업완료타임아웃interrupt

start()

Thread ㄹ ifecycle

Page 13: [명우니닷컴]자바 스레드에 대해

Thread in Chat ㅍ rogram

Page 14: [명우니닷컴]자바 스레드에 대해

Thread in Chat ㅍ rogram

Page 15: [명우니닷컴]자바 스레드에 대해

Thread in Chat ㅍ rogram

Page 16: [명우니닷컴]자바 스레드에 대해

Thread in Chat ㅍ rogram

참고자료 :http://deviant86.tistory.com/240

Page 17: [명우니닷컴]자바 스레드에 대해

R ㅔ FERENCE

http://deviant86.tistory.com/240http://noon.tistory.com/1450http://yellowvirus.tistory.com/16

소스예제

운영체제론

http://blog.naver.com/highkrs/220268316736

메인스레드 및 워킹스레드 관련http://chihun0528.blog.me/90104286935데몬스레드 관련http://terms.naver.com/네이버지식백과 / 각 키워드의 개념

http://cafe.naver.com/ccjmaster/112자바스레드에 대하여http://cafe.naver.com/iwgg/1397자바가상머신 및 자바플랫폼에 대하여

http://happyourlife.tistory.com/m/post/133#

자바스레드 관련 가장많은자료참고

자바 병행 프로그램의 모니터링 시스템석사졸업논문 , 숙명여자대학원 , 문세원http://kiwi99.tistory.com/12자바 스레드 관련

하비 디텔 , 폴 디텔 , 데이빗쇼픈스 저 ,송경희 역 / 김명섭 감수