2013년 11월 17일 일요일

Java Thread란(자바쓰레드), 자바/JSP/NETWORK/교육/학원 실행중인 프로그램 내의 1개의 순차적 제어 흐름, 프로세스 내부에서 실행되는 일련의 작업 자바 프로그램은 main 쓰레드가 main() 함수 수행, 처음 자바 프로그램을 실행할때 jvm이 main 메소드를 프로그램이 시작되는 곳으로 인식하고 main 스택을 만들어 메인 쓰레드를 가동한다. 흐름이 하나밖에 없는 프로그램을 싱글 스레드라고 한다. 다중 쓰레드 프로그램 : 동시에(concurrently) 여러가지 작업을 할 수 있음, 프로그램 내부에 2개 이상의 스레드들이 서로 침범하지 않으면서도 동시에 실행의 흐름이 진행되는 프로그램 a와 b라는 스레드가 있을때 a스레드가 진행되면서 CPU의 상태가 바뀌게 되는데 이를 저장하고 b의 스레드에 맞게 CPU를 맞추고 b스레드를 처리하는 것이다. 물론 b처리후 얼마후 다시 a가 처리된다. 이때 a와 b가 같은 프로그램이면 멀티 스레드이며 서로 다른 프로그램 일 경우에는 멀티태스킹이 된다. CPU가 하나인 컴퓨터의 입장에서는 여러 개의 흐름이 동시에 돌아간다는 것은 불가능 하다. 단지 OS가 여러 개의 흐름이 돌아 가는 것처럼 보일 수 있도록 CPU등의 환경 상태를 각각의 흐름에 맞게 setting 하는 것이다. 자바 언어가 기존 언어와 구분되는 큰 차이는 Thread를 언어 차원에는 지원 하는 것이다. 쉽게 스레드를 관리 할 수 있게 해 준다. CPU가 여러 개 인경우 각각의 CPU에서 개별적인 프로그램 흐름을 만들 수 있게 해 준다. 즉 CPU가 2개 이면 2개의 스레드가 상태 변환 없이 각각의 CPU에서 돌아가게 되는 것 이다. 프로세스는 실행 환경과 제어환경으로 이루어져 있는데 스레드는 제어부에 해당 된다. 기본적으로 하나의 프로그램이 실행 되는 것을 프로세스가 발생 했다고 표현하며 이 프로세스는 또 다시 여러 개의 스레드를 거느릴 수 있는데 프로세스 간의 직접 상태 변환보다는 이들 프로세스들이 거느리고 있는 스레드에게 제어권을 맡김 으로서 상태 변환에 따르는 부담을 줄인다. (한 프로세스 내의 스레드들이 같은 베모리 공간을 사용) 스레드의 최대 장점은 프로세스 내의 정보들이 공유가 쉽다는 것이다. 물론 여러 개의 프로세스로 같은 작업을 하더라도 프로세스간의 통신을 통해 정보를 공유 할 수 있지만 스레드로서 공유하는 것과는 차이가 있다. 이점 : 실행 속도, 빠른 반응 시간, 동시성을 갚는 프로그램을 쉽게 작성, 다중 프로세스와 다중 쓰레드, 성능과 크기,통신의 효율성 [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=644 [개강임박강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.] 오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr) [주간] [11/25]Spring3.X, MyBatis, Hibernate실무과정 [11/25]초보자를위한실전SQL [11/25]안드로이드개발자과정 [11/25]iPhone 하이브리드 앱 개발 실무과정 [평일야간] [11/22]자바초보에서안드로이드까지 [11/26]JAVA&WEB프레임워자실무과정 [11/26]iPhone하이브리드앱개발실무과정 [11/26]웹퍼블리싱 마스터 [11/27]SQL초보에서실전전문가까지 [11/28]Spring3.X, MyBatis, Hibernate실무과정 [주말] [11/23]JAVA&WEB프레임워크실무과정 [11/23]웹퍼블리싱 마스터 [11/23]C#,ASP.NET마스터 [11/30]SQL초보에서전문가까지 [11/30]Spring3.X,MyBatis,Hibernate실무과정 JAVA ORACLE iPhone/Android .NET 표준웹/HTML5 채용/취업무료교육 초보자(재학생)코스

Java Thread란(자바쓰레드), 자바/JSP/NETWORK/교육/학원
 
실행중인 프로그램 내의 1개의 순차적 제어 흐름, 프로세스 내부에서 실행되는 일련의 작업 

자바 프로그램은 main 쓰레드가 main() 함수 수행, 처음 자바 프로그램을 실행할때 jvm이 main 메소드를 프로그램이 시작되는 곳으로 인식하고 main 스택을 만들어 메인 쓰레드를 가동한다.
흐름이 하나밖에 없는 프로그램을 싱글 스레드라고 한다.
다중 쓰레드 프로그램 : 동시에(concurrently) 여러가지 작업을 할 수 있음, 프로그램 내부에 2개 이상의 스레드들이 서로 침범하지 않으면서도 동시에 실행의 흐름이 진행되는 프로그램
 
a와 b라는 스레드가 있을때 a스레드가 진행되면서 CPU의 상태가 바뀌게 되는데 이를 저장하고 b의 스레드에 맞게 CPU를 맞추고 b스레드를 처리하는 것이다. 물론 b처리후 얼마후 다시 a가 처리된다. 이때 a와 b가 같은 프로그램이면 멀티 스레드이며 서로 다른 프로그램 일 경우에는 멀티태스킹이 된다.

CPU가 하나인 컴퓨터의 입장에서는 여러 개의 흐름이 동시에 돌아간다는 것은 불가능 하다. 단지 OS가 여러 개의 흐름이 돌아 가는 것처럼 보일 수 있도록 CPU등의 환경 상태를 각각의 흐름에 맞게 setting 하는 것이다.

자바 언어가 기존 언어와 구분되는 큰 차이는 Thread를 언어 차원에는 지원 하는 것이다.
쉽게 스레드를 관리 할 수 있게 해 준다. CPU가 여러 개 인경우 각각의 CPU에서 개별적인 프로그램 흐름을 만들 수 있게 해 준다. 즉 CPU가 2개 이면 2개의 스레드가 상태 변환 없이 각각의 CPU에서 돌아가게 되는 것 이다.

프로세스는 실행 환경과 제어환경으로 이루어져 있는데 스레드는 제어부에 해당 된다. 기본적으로 하나의 프로그램이 실행 되는 것을 프로세스가 발생 했다고 표현하며 이 프로세스는 또 다시 여러 개의 스레드를 거느릴 수 있는데 프로세스 간의 직접 상태 변환보다는 이들 프로세스들이 거느리고 있는 스레드에게 제어권을 맡김 으로서 상태 변환에 따르는 부담을 줄인다. (한 프로세스 내의 스레드들이 같은 베모리 공간을 사용)
 
스레드의 최대 장점은 프로세스 내의 정보들이 공유가 쉽다는 것이다. 물론 여러 개의 프로세스로 같은 작업을 하더라도 프로세스간의 통신을 통해 정보를 공유 할 수 있지만 스레드로서 공유하는 것과는 차이가 있다.
 
이점 : 실행 속도, 빠른 반응 시간, 동시성을 갚는 프로그램을 쉽게 작성, 다중 프로세스와 다중 쓰레드, 성능과 크기,통신의 효율성

댓글 없음:

댓글 쓰기