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

Download Report

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

Subject : Thread
Written by: 김형근,류명운
본 발표 내용은 스레드의 개념과 통신 프로그램에서 사용되는 스레드 내용입니다.
스레드의 개념 이해
OS
Process
Multi Thread
Single Thread
자바에서의 스레드란?
자바는 비동기적 작동 방식(독립스레드)에 대한 개념이 없음
하지만, 자바가 실행되는 기반인 자바가상머신(JVM) 자체가 하나의 프로세스
이기 때문에 언어적 차원에서 스레드의 동기화 지원이 가능
따라서 자바에서의 스레드란 JVM(Java Virtual Machine)에 의
해 호출될 수 있는 가장 작은단위
간단한 프로그램을 작성할 때에도 스레드를 사용
대부분의 API 클래스들은 이미 내부적으로 스레드를 구현하여 사용 - ex)소켓
자바에서의 스레드 종류
메인스레드
(시스템스레드)
워킹스레드
(사용자스레드)
자바에서의 스레드 종류
단일스레드
(Single-thread)
멀티스레드
(Multi-thread)
자바에서의 스레드 종류
독립스레드
종속스레드
(데몬스레드)
자바에서의 스레드 Q&A
자바에서의 스레드 중 JVM에 의해 기본적으로 생성되는 스레드 외에 사용자
에 의해 생성되는 스레드는 어떠한 경우인가?
-> 사용자가 프로그램을 개발함에 있어 멀티스레드를 구현하기 위해
사용자에 의해 생성되는 스레드는 어떠한 종류가 있으며, 각 스레드는 어떠한
경우에 사용되는가?
-> 독립스레드: 멀티스레드 프로그램을 위해
종속스레드: 독립스레드를 돕기 위해
Thread
1. Thread Mㅔthod
2. Thread ㄹifecycle
3. Siㅇgle Thread Mulㅌi Thread
4. Thread in Chat ㅍrogram
Thread Mㅔthod
Thread의 메소드
void run()
내용
JVM에 의해 호출
개발자는 반드시 오버라이딩
void start()
JVM에 스레드 실행 시작
Run() 실행
void interrupt()
스레드 강제종료
Static void yield()
다른 스레드에게 실행 양보
스케드 스케줄링 시행->
다른 스레드 선택하여 실행
void join()
Static void
sleep(long mills)
void
setPriority(int n)
스레드가 종료할 때까지 기다린다.
쓰레드는 mills 시간 동안 잔다.
Mills의 단위는 밀리초
스레드의 우선순위 값을 n 변경
Thread ㄹifecycle
Thread A = new Thread()
Run() 또는 JVM
Scheduling
Synchronized
or
I/O 작업요청
NEW(탄생)
start()
실행
Join()
RUNNABLE
(준비)
yield()
RUNNABLE
(running, 실행 중)
Sleep()
Object.wait()
종료
ThreadB
Object.notify();
Object.notifyAll();
BLOCK(봉쇄)
Join
TIME_WAITING
TIME_WAITING
(시간대기)
WAITTING(대기)
I/O작업완료
타임아웃
interrupt
타임아웃
interrupt
Thread in Chat ㅍrogram
Thread in Chat ㅍrogram
Thread in Chat ㅍrogram
Thread in Chat ㅍrogram
참고자료:http://deviant86.tistory.com/240
RㅔFERENCE
http://deviant86.tistory.com/240
소스예제
http://noon.tistory.com/1450
http://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
석사졸업논문, 숙명여자대학원, 문세원
자바 병행 프로그램의 모니터링 시스템
하비 디텔, 폴 디텔, 데이빗쇼픈스 저,
송경희 역/ 김명섭 감수
운영체제론