본문 바로가기
Java , Spring/Java

[Java] Thread(쓰레드) 생성, 실행

by 방배킹 2023. 5. 14.

Thread 생성방법

1. Thread class를 상속받아 run() 메서드 재정의

2. Runable interface를 구현( 추상메서드run() 구현 ) -> Thread 생성자로 Runable 객체 전달

 

Thread 실행 방법

Thread class의 start() 메서드 호출

 

주의 사항

  • 재정의한 메서드는 run()이지만 실행은 start() 메서드를 통해 호출한다.
  • Thread 객체는 재사용이 불가능하다.

생성방법 1. Thread class를 상속받아 run() 메서드 재정의

public class Thread1 extends Thread{
    @Override
    public void run(){
        String[] strArr = {"가","나","다","라","마"};

        for(int i=0; i<strArr.length;i++){
            System.out.print(strArr[i]+"-");
            try{Thread.sleep(200);

            }catch (Exception e){}
        }
    }
}
public class Thread2 extends Thread{
    @Override
    public void run(){
        String[] strArr = {"1","2","3","4","5"};

        try{Thread.sleep(110);}catch (Exception e){}

        for(int i=0; i<strArr.length;i++){
            System.out.println(strArr[i]);
            try{Thread.sleep(200);}catch (Exception e){}
        }
    }
}
public class Main {
    public static void main(String[] args) {
        Thread myThread1 = new Thread1();
        Thread myThread2 = new Thread2();

        myThread1.start();
        myThread2.start();

    }
}

 

1. Thread1과 Thread2를 만들고 Thread class를 상속 받는다.

2. run() 함수를 override 하여 재정의 한다.

3.main문에서  start() 함수를 통해 실행한다.

 

생성방법 2. Runable interface를 구현( 추상메서드run() 구현 )

 

public class Runnable1 implements Runnable{
    @Override
    public void run(){
        String[] strArr = {"가","나","다","라","마"};

        for(int i=0; i<strArr.length;i++){
            System.out.print(strArr[i]+"-");
            try{Thread.sleep(200);

            }catch (Exception e){}
        }
    }
}
public class Runnable2 implements Runnable{
    @Override
    public void run(){
        String[] strArr = {"1","2","3","4","5"};

        try{Thread.sleep(110);}catch (Exception e){}

        for(int i=0; i<strArr.length;i++){
            System.out.println(strArr[i]);
            try{Thread.sleep(200);}catch (Exception e){}
        }
    }
}
public class Main {
    public static void main(String[] args) {

        Runnable myRunnable1 = new Runnable1();
        Runnable myRunnable2 = new Runnable2();

        Thread thread1 = new Thread(myRunnable1);
        Thread thread2 = new Thread(myRunnable2);

        thread1.start();
        thread2.start();

    }
}

1. Runnable 인터페이스의 run() 함수를 구현한다.

2. 각각의 Runnable1, Runnable2의 run() 함수를 구현하고 해당 함수에 기능을 작성한다.

3. main문에서 Runnable1, Runnable2 객체를 만들고 Thread 객체를 생성하고 생성자에 인자로 넣어준다.

4. start() 함수를 통해 실행한다.

 

댓글