728x90
반응형

쓰레드 구현 및 실행

쓰레드를 구현하는 Thread클래스를 상속받는 방법 Runnable인터페이스를 구현하는 방법 2가지가 있습니다. Thread클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에 일반적으로
Runnable인터페이스로 구현하는 방법이 일반적입니다.

※ Runnable인터페이스로 구현할 경우 Runnable인터페이스를 구현한 클래스의 인스턴스를 생성한 다음 이 인스턴스를 가지고 Thread클래스의 인스턴스를 생성할 때 생성자의 매개변수로 제공해야합니다.

1
2
3
4
5
6
// Thread클래스를 상속
class MyThread extends Thread{
    public void run(){
        /* 작업내용 */ // Thread클래스의 run()을 오버라이딩
    }
}
cs


1
2
3
4
5
6
// Runnable인터페이스를 구현
class MyThread implements Runnable{
    public void run(){
        /* 작업내용 */ // Runnable인터페이스의 추상메서드 run()을 구현
    }
}
cs



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
// Thread클래스를 이용한 쓰레드 구현 예제
class ThreadEx{
    public void main(String args[]{
        ThreadEx1 t1 = new ThreadEx1();
        ThreadEx1 t2 = new ThreadEx1();
 
        // 쓰레드 실행
        t1.start();
        t2.start();
    }
}
 
class ThreadEx1 extends Thread{
    public void run(){
        for(int i=0; i<3; i++){
            System.out.println(getName()); // 조상인 Thrad의 getName()을 호출
        }
    }
}
 
/* 결과값 - 쓰레드는 각각 실행되므로 0과 1의 순서는 바낄 수 있음 
   Thread-0
   Thread-0
   Thread-0
   Thread-1
   Thread-1
   Thread-1
*/
cs

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
32
// Runnable인터페이스를 이용한 쓰레드 구현 예제
class ThreadEx{
    public void main(String args[]{
        Runnable r = new ThreadEx2();
        Thread t1 = new Thread(r);
        Thread t2 = ne Thread(r);
 
        // 쓰레드 실행
        t1.start();
        t2.start();
    }
}
 
class ThreadEx1 implements Runnable{
    public void run(){
        for(int i=0; i<3; i++){
            // 현재 실행중인 Thread를 반환
            System.out.println(Thread.currentThread().getName()); 
            /* Runnable인터페이스로 쓰레드를 구현하면 getName()을 직접 호출할 수 없으며,
               static메서드인 currentThread()를 이용하면 getName()을 호출할 수 있습니다. */
        }
    }
}
 
/* 결과값 - 쓰레드는 각각 실행되므로 0과 1의 순서는 바낄 수 있음 
   Thread-0
   Thread-0
   Thread-0
   Thread-1
   Thread-1
   Thread-1
*/
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Thread클래스
public class Thread{
    private Runnable r;
    
    public Thread(Runnable r){
        this.r = r;
    }
   
    public void run(){
        if(r!= null) r.run // Runnable인터페이스를 구현한 인스턴스 run()을 호출
    }
}
 
Thread(Runnable target, String name)
Thread(String name)
void setName(String name)
cs

[출처] [java] 쓰레드 구현 및 실행|작성자 Simpolor


728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,