티스토리 뷰
Thread 를 시작하는 방법
1. Runnable 객체 (스레드에서 할 작업)를 만든다.
1 | Runnable job = new MyRunnable(); |
Runnable 은 인터페이스 입니다. Runnable 인퍼페이스를 구현하는 클래스를 만들어야 하며 스레스에서 처리할 작업은 그 클래스에서 정의합니다. 즉, 새로운 스레드의 호룻 스택에서 실행할 메소드를 그 클래스에서 정의해야 합니다.
2. Thread 객체(일꾼)을 만들고 그 객체에 Runnable 객체(작업)를 전달한다.
1 | Thread thetThread = new Thread(job); |
새로운 Runnable 객체를 Thread 생성자에 전달합니다. 이렇게 하면 새로운 Thread 객체에서 새로운 스택 맨 밑에 넣을 메소드(Runnable 객체의 run() 메소드) 를 알려줄 수 있습니다.
3. Thread 객체를 시작시킨다.
1 | testThread.start(); |
Thread의 start() 메소드를 호출해야지만 Thread 인스턴스에서 새로운 실행 스레드를 만들어냅니다. 새로운 스레드가 시작되면 Runnable 객체의 run() 메소드를 받아서 새로운 스레드의 스택 맨 아래에 집어 넣습니다.
Runnable 객체란
스레드 에서 해야 할 일을 만들려면 Runnable 인터페이스를 구현해야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class testRunnable /*implements Runnable*/{ // Runnable은 java.lang 패키지에 들어있기 때문에 import 선언문을 쓰지 않아도 됩니다. public void run(){ go(); // Runnable에는 구현할 메소드가 public void run() 하나 밖에 없습니다. 스레드에서 실행해야 할 작업이 바로 여기에 들어가야 합니다. } // 새로운 스택 맨 밑에 이 메소드가 들어갑니다. public void go(){ do(); } public void doExcute(){ System.out.println("top of the stack"); } } public class ThreadTester{ public static void main(String[] args){ Runnable threadJob = new testRunnable(); // 이렇게 하면 스레드에 새로운 스택 맨 아래에 집어넣을 메소드를 알려줄 수 있습니다. Thread myThread = new Thread(threadJob); myThread.start(); System.out.println("back in main"); } } | cs |
그럼 아래와 같은 형식으로 스레드가 생성됩니다. 실행결과는 어떨까요 ? 그 내용에 대해선 다음 Chapter에서 알아보도록 하겠습니다.
출처 : headfirst JAVA
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
JAVA sleep 에 대해 (0) | 2016.11.16 |
---|---|
JAVA Thread의 상태와 스케줄러 (0) | 2016.11.16 |
JAVA Thread에 대해 (0) | 2016.11.15 |
JAVA 엑셀 파일 불러오기 (1) | 2016.11.05 |
(JAVA0 SerialVersionUID 정의 및 사용법 (0) | 2016.10.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 자전거 여행
- 인텔리제이
- git
- windows
- TableView
- 배낭 여행
- springboot
- JavaFX Window Close
- Java UI
- effectivejava
- 방통대 과제물
- effective java
- JavaFX
- JavaFX 종료
- 텐트
- 이펙티브 자바
- JavaFX Table View
- intelij
- 스프링부트
- 일본 자전거 여행
- java
- 자전거
- 일본여행
- 배낭여행
- 이펙티브자바
- JavaFX 테이블뷰
- 일본 여행
- 일본 배낭여행
- 이펙티브
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함