IT story/Java

D+19 Thread(쓰레드)

jason719 2016. 9. 1. 17:36

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