티스토리 뷰

프로그래밍/JAVA

JAVA Thread에 대해

rlawlstjd007 2016. 11. 15. 20:56
Thread 란

 

 서버와 클라이언트 간 양방향 채팅 프로그램을 만들 때 클라이언트에서 서버로부터 메시지를 어떻게 받을 지 생각해 보죠. 가장 좋은 방법은 서버에서 메시지를 보내면 바로 메시지를 읽는 방법이겠죠? 하지만 이미 GUI 를 띄우고 나면 GUI 구성요소에서 이벤트를 내놓지 않는 이상 동시에 두 가지 일을 하긴 어렵겠죠? 


 JAVA에서는 Thread 여러 개를 사용할 수 있지만 Thread 클래스는 하나뿐입니다. 


스레드 라고 하는 경우는 별도의 실행 스레드를 의미 합니다. 


 Thread라는 키워드는 java.lang 패키지에 들어 있는 클래스 명을 의미 합니다. 그리고 Thread 객체는 실행 스레드를 의미합니다. 따라서 새로운 실행 스레드를 만들 때는 Thread 클래스의 인스턴스를 만들어야 합니다.


스레드는 별도의 실행 스레드 = 별도의 호출 스택 


 모든 자바 애플리케이션은 메인 스레드를 시작합니다. 메인 스레드를 시작 시키는 것은 JVM에서 책임 지죠. 그리고 프로그래머들이 다른 스레드를 시작시키는 코드를 직접 만들 수도 있습니다. 



호출 스택이 두 개 이상 있다는 것

 호출 스택이 두 개 이상 있으면 여러가지일이 동시에 일어나는 것처럼 보이게 할 수 있습니다. 여러 스택이 아주 빠르게 번갈아 실행되기 때문에 여러 스택이 동시에 실행되는 것처럼 보이는 것 입니다. 

 자바는 실제 운영체제 위에서 돌아가고 있는 프로세스에 불과합니다. 따라서 처음에는 자바 자체가 운영체제의 '현재 실행중인 프로세스'가 되어야 합니다. 하지만 자바가 실행될 차례라면 JVM은 현재 실행중인 스택의 맨 위에 있는 것을 실행시킵니다. 그리고 0.1초도 되지 않아 현재 실행중인 코드가 다른 스택에 있는 다른 메소드로 전환될 수도 있습니다.


반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA Thread의 상태와 스케줄러  (0) 2016.11.16
JAVA Thread 사용법  (0) 2016.11.16
JAVA 엑셀 파일 불러오기  (1) 2016.11.05
(JAVA0 SerialVersionUID 정의 및 사용법  (0) 2016.10.27
JAVA Java.nio 클래스란  (0) 2016.10.27
댓글