상세 컨텐츠

본문 제목

자바 멀티스레드

2015 STUDY BackUp

by 해뿡 2021. 12. 15. 00:28

본문

자바의 멀티스레드란?

1. 멀티스레드는 하나의 프로그램 내에서 여러 개의 작업이 동시에 수행되는 것을 말한다.

 

2. 멀티스레드(다중 작업)의 예

- 동시에 여러개의 다운로드 창을 띄우고 다운로드 받는 경우

- 메신져창을 여러개 띄우고 동시에 대화하는 경우

 

3. 멀티스레드 구현 방법

- Thread클래스를 상속하는 방법 : 단일 상속만 가능하다는 단점이 있다.

- Runnable인터페이스를 상속받는 법 : 다중상속을 받을 수 있다.

 

4. Thread클래스를 상속받아서 멀티스레드 구현하는 방법

- Thread클래스를 상속받은 자식클래스 객체를 생성해서 start()메서드를 호출하면 

자바가상머신에 의해서 run()메서드를 자동으로 호출한다.

자식클래스에서 run()메서드를 오버라이딩 해서 run()메서드 중괄호 안에 멀티스레드 문장을 구현하면 된다.

- 생성된 객체로 start()메서드를 호출하면 멀티스레드가 시작된다.

 

 

 

 

<멀티스레드 예제>

package test;



class ThreadExam01 extends Thread{

  public ThreadExam01(){}//기본생성자 코딩해야한다. 생략불가능

  public ThreadExam01(String name){

 	 super(name);//부모 Thread클래스 파라미터 한개 짜리 오버로딩 된 생성자 호출

  }

  @Override

  public void run() {//멀티스레드 문장 구현

    for(int num=1; num<=5; num++){

      for(int k=1; k<100000000; k++)

      //다중작업을 하기위해 시간을 필요로 하는 작업에 시간을 설정해준다.

      System.out.println(getName()+" : "+num);

      //getName()메서드로 스레드 이름을 반환

    }//for

  }//run()

}

public class ThreadTest01 {



  public static void main(String[] args) {

    ThreadExam01 t01=new ThreadExam01("첫번째 스레드");

    ThreadExam01 t02=new ThreadExam01("두번째 스레드");

    t01.start();

    t02.start();

    //start()메서드를 호출해서 멀티스레드를 시작하면 자동으로 run()메서드를 호출한다.

  }



}

관련글 더보기

댓글 영역