Subject : Thread Written by: 김형근,류명운.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

컴퓨터와 인터넷.
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
최윤정 Java 프로그래밍 클래스 상속 최윤정
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
제8장 쓰레드 프로그래밍.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
어서와 Java는 처음이지! 제16장 스레드.
Java 10장. 다중 스레드 public class SumTest {
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
5장. 참조 타입.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
스레드란? 멀티 태스킹(muli-tasking)는 여러 개의 애플리케이션을 동시에 실행하여서 컴퓨터 시스템의 성능을 높이기 위한 기법 그림23-1. 병철 처리의 예.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
Chapter 06 프로세스와 예약작업 관리 Solaris 1. 프로세스 관리
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
Power Java 제14장 배치 관리자.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
자바네트워크 제2주 실습 네트워크기초, 스레드.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
10장. 예외처리.
자바 5.0 프로그래밍.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
자바응용.
Subject : Thread Written by: 김형근,류명운.
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
자바 5.0 프로그래밍.
System.Threading Process / Thread SD50 – C# & .NET Platform.
데이터베이스실험실 석사 2학기 조정희 TCP/IP Socket Programming… 제 18장 윈도우 기반 쓰레드 사용하기 데이터베이스실험실 석사 2학기 조정희
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
Power Java 제11장 상속.
CHAP 21. 전화, SMS, 주소록.
( Windows Service Application Debugging )
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
Chapter 17. 스레드.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
3. 모듈 (5장. 모듈).
JSP Programming with a Workbook
MIDP 네트워크 프로그래밍 ps lab 김윤경.
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Thread.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
엔코더 프로그램 설명 // 쓰레드를 사용하기 때문에 변수와 핸들을 전역변수로 지정 HANDLE hDevice;
제8장 쓰레드 프로그래밍.
Power Java 제14장 배치 관리자.
Completion Port기반의 채팅프로그램
CODE INJECTION 시스템B 김한슬.
Power Java 제23장 스레드.
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
Presentation transcript:

Subject : Thread Written by: 김형근,류명운

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

스레드의 개념 이해 OS Process Multi Thread Single Thread

자바에서의 스레드란? 자바는 비동기적 작동 방식(독립스레드)에 대한 개념이 없음 하지만, 자바가 실행되는 기반인 자바가상머신(JVM) 자체가 하나의 프로세스 이기 때문에 언어적 차원에서 스레드의 동기화 지원이 가능 따라서 자바에서의 스레드란 JVM(Java Virtual Machine)에 의해 호출될 수 있는 가장 작은단위 간단한 프로그램을 작성할 때에도 스레드를 사용 대부분의 API 클래스들은 이미 내부적으로 스레드를 구현하여 사용 - ex)소켓

메인스레드 자바에서의 스레드 종류 워킹스레드 (시스템스레드) (사용자스레드) 여태까지 우리는 자바의 스레드를 사용하여 프로그램을 짜왔음. -> main 메소드(main 스레드) 하지만 독립스레드란 메인스레드 외에 별도로 존재하는 스레드를 뜻한다. 이와 좀 다른 데몬스레드는 다른 스레드를 도와주기 위해 만들어지는 스레드이다. 데몬스레드의 특징은 메인스레드가 죽으면 같이 죽는다는 것이다. 데몬스레드는 스스로는 어떤 일도 수행할 수 없으며 다른 스레드와 같이 동작한다. 이러한 데몬스레드는 JVM에 의해 기본적으로 제공되는

단일스레드 멀티스레드 자바에서의 스레드 종류 (Single-thread) (Multi-thread) 여태까지 우리는 자바의 스레드를 사용하여 프로그램을 짜왔음. -> main 메소드(main 스레드) 하지만 독립스레드란 메인스레드 외에 별도로 존재하는 스레드를 뜻한다. 이와 좀 다른 데몬스레드는 다른 스레드를 도와주기 위해 만들어지는 스레드이다. 데몬스레드의 특징은 메인스레드가 죽으면 같이 죽는다는 것이다. 데몬스레드는 스스로는 어떤 일도 수행할 수 없으며 다른 스레드와 같이 동작한다. 이러한 데몬스레드는 JVM에 의해 기본적으로 제공되는

종속스레드 독립스레드 (데몬스레드) 자바에서의 스레드 종류 여태까지 우리는 자바의 스레드를 사용하여 프로그램을 짜왔음. -> main 메소드(main 스레드) 하지만 독립스레드란 메인스레드 외에 별도로 존재하는 스레드를 뜻한다. 이와 좀 다른 데몬스레드는 다른 스레드를 도와주기 위해 만들어지는 스레드이다. 데몬스레드의 특징은 메인스레드가 죽으면 같이 죽는다는 것이다. 데몬스레드는 스스로는 어떤 일도 수행할 수 없으며 다른 스레드와 같이 동작한다. 이러한 데몬스레드는 JVM에 의해 기본적으로 제공되는

자바에서의 스레드 Q&A 자바에서의 스레드 중 JVM에 의해 기본적으로 생성되는 스레드 외에 사용자에 의해 생성되는 스레드는 어떠한 경우인가? -> 사용자가 프로그램을 개발함에 있어 멀티스레드를 구현하기 위해 사용자에 의해 생성되는 스레드는 어떠한 종류가 있으며, 각 스레드는 어떠한 경우에 사용되는가? -> 독립스레드: 멀티스레드 프로그램을 위해 종속스레드: 독립스레드를 돕기 위해

3. Siㅇgle Thread Mulㅌi Thread 1. Thread Mㅔthod 2. Thread ㄹifecycle 3. Siㅇgle Thread Mulㅌi Thread 4. Thread in Chat ㅍrogram

Static void sleep(long mills) Thread Mㅔthod Thread의 메소드 내용 JVM에 의해 호출 개발자는 반드시 오버라이딩 void run() void start() JVM에 스레드 실행 시작 Run() 실행 void interrupt() 스레드 강제종료 다른 스레드에게 실행 양보 스케드 스케줄링 시행-> 다른 스레드 선택하여 실행 Static void yield() void join() 스레드가 종료할 때까지 기다린다. Static void sleep(long mills) 쓰레드는 mills 시간 동안 잔다. Mills의 단위는 밀리초 void setPriority(int n) 스레드의 우선순위 값을 n 변경

Thread ㄹifecycle 실행 ThreadB Object.notify(); Object.notifyAll(); Thread A = new Thread() NEW(탄생) Synchronized or I/O 작업요청 BLOCK(봉쇄) I/O작업완료 start() 실행 타임아웃 interrupt Join() Join TIME_WAITING RUNNABLE (준비) yield() 타임아웃 interrupt Run() 또는 JVM Scheduling Sleep() TIME_WAITING (시간대기) RUNNABLE (running, 실행 중) NEW - 스레드가 생성되었지만 아직 실행할 준비가 되지 않은 상태로 start() 메소드가 호출되면 RUNNABLE 상태가 된다. RUNNABLE - 스레드가 현재 실행되고 있거나 실행 준비되어 스케쥴링을 기다리는 상태 WAITING - 스레드가 어떤 Object 타입의 객체 a에 대해 a.wait()을 호출하고 무한 대기하면서 다른 스레드가 a.notify(), a.notifyAll()을 불러주기를 기다리고 있는상태 TIMED_WAITING - 스레드가 sleep(int n)을 홏풀하여 n밀리초 동안 잠을 자고 있는 상태 BLOCK - 스레드가 I/O(입출력)작업을 요청하여 I/O작업이 완료되기를 기다리는 상태 응용프로그램이 입출력 작업을 실행하면 JVM이 자동으로 현재 스레드를 BLOCK상태로 만든다. TERMINATED - 스레드가 종료한 상태로 더 이상 다른 상태로 변이할 수 없다. 스레드 동기화(Thread Synchronization) 공유데이터에 접근하고자 하는 다수의 스레드가 서로 순서대로 충돌 없이 공유데이터를  배타적으로 접근하기 위해 상호렵력하는 것인데요. 공유데이터를 다루는 프로그램코드를 임계 영역이라고 하고 임계 영역에 대한 멀티스레드의 동기화가 필요해요. 자바의 스레드 동기화를 위해서는 synchronized키워드가 필요한데요. synchronized 키워드는 자바에서 스레드 동기화를 위한 장치로 임의의 코드 블록을 동기화가 설정된 임계 영역으로 지정하는 것 Object.wait() WAITTING(대기) Object.notify(); Object.notifyAll(); ThreadB 종료

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 석사졸업논문, 숙명여자대학원, 문세원 자바 병행 프로그램의 모니터링 시스템 하비 디텔, 폴 디텔, 데이빗쇼픈스 저, 송경희 역/ 김명섭 감수 운영체제론