2016. 09. 01. Thu. 열아홉 번째 수업!
오늘의 수업내용!
- Thread를 생성해보자
- Thread Sleep을 알아보자
- Runnable에 대해 알아보자
1. Thread 생성
아래의 예제를 살펴보자
실행순서는 무작위이다.
2. Thread Sleep 생성
Sleep 기능을 알아보자
아래의 예제를 살펴보자
package com.javalesson.ch19thread;
class ThreadDemo extends Thread{
int seq;
public ThreadDemo(int seq){
this.seq = seq;
}//생성자
public void run() {
System.out.println(seq+"thread start");
try {
sleep(5000);
} catch (InterruptedException e) {e.printStackTrace();}
System.out.println(seq+"thread end");
}//run
}//class
public class L02ThreadSleep {
public static void main(String[] args) {
for(int i=0; i<10; i++){
new ThreadDemo(i).start();
}
System.out.println("main thread end");
}//main
}//class
Sleep으로 5초를 주고 실행을 하면, thread start가 실행되고 5초후에 thread end가 실행된다.
아래의 결과를 살펴보자
3. Runnable 생성
아래의 예제를 통해 thread와 sleep, join에 대해 알아보자
package com.javalesson.ch19thread;
import java.util.ArrayList;
import java.util.List;
class RunnableDemo implements Runnable{
int seq;
public RunnableDemo(int seq){
this.seq = seq;
}
@Override
public void run() {
System.out.println(seq+"thread start");
try{
Thread.sleep(5000);
}catch(InterruptedException e){e.printStackTrace();}
System.out.println(seq+"thread end");
}
}
public class L03Runnable {
public static void main(String[] args) {
List threads = new ArrayList();
for(int i=0; i<10; i++){
Thread t = new Thread(new RunnableDemo(i));
t.start();
threads.add(t);
}
for(int i=0; i<threads.size(); i++){
try {
((Thread)threads.get(i)).join();
} catch (InterruptedException e) {e.printStackTrace();}
}
}//main
}//class
결과는 위의 ThreadSleep과 동일하다.
'IT story > Java' 카테고리의 다른 글
D+21 Text Editor(메모장 만들기) (0) | 2016.09.06 |
---|---|
D+20 awt(text & text editor) (0) | 2016.09.06 |
D+18 InnerClass (0) | 2016.08.31 |
D+17 SerialOut & SerialInput (0) | 2016.08.30 |
D+17 Input Output(입, 출력) (0) | 2016.08.29 |