java, C#같은 프로그래밍 언어의 경우 

코드는 위에서 부터 아래라인으로 라인별로 실행되게 됩니다.

예를 들어 100라인의 코드가 실행되려면 1~99라인의 코드가 먼저 수행되어야 합니다.

 

하지만, 멀티 쓰레드를 활용하면 로직을 동시에 처리할 수 있게 됩니다.

아래는 runnable 인터페이스를 통해 구현한 멀티쓰레드 예제입니다.

 

runnable 인터페이스를 구현했기때문에 run() 메소드를 오버라이드 해줘야

클래스가 오류없이 컴파일 됩니다.

 

run()메소드는 쓰레드가 수행할 로직을 정의합니다.

 

아래 코드를 간랴학게 설명하면,

쓰레드4개를 먼저 생성합니다.

쓰레드 객체 생성할때 생성자 파라미터 String name값에 값을 지정해줍니다.(손흥민1,이강인2,,,)

각 쓰레드는 start()메소드를 호출하면 본인이 가지고 있는 name 속성 값을 for문을 통해 5번 출력합니다.

쓰레드로 작업을 분할했기 때문에 4개의 쓰레드는 동시에 수행 됩니다.

package com.xmpo;

import java.text.SimpleDateFormat;
import java.util.Date;

public class ThreadTest {

    public static void main(String[] args) {
        Runnable d = new CheckThread("손흥민1");
        Runnable d1 = new CheckThread("이강인2");
        Runnable d2 = new CheckThread("황의조3");
        Runnable d3 = new CheckThread("황희찬4");

        Thread thread = new Thread(d);
        Thread thread1 = new Thread(d1);
        Thread thread2 = new Thread(d2);
        Thread thread3 = new Thread(d3);

        thread.start();
        thread1.start();
        thread2.start();
        thread3.start();

    }

}

class CheckThread implements Runnable{

    String name;

    CheckThread(String name){
        this.name = name;
    }

    @Override
    public void run() {
        try{

            for(int i=0;i<5;i++){
                System.out.println(name);
                Thread.sleep(1000);
            }

        }catch (Exception e){
            System.out.println(e.toString());
        }

        System.out.println("쓰레드 종료 : "+ name);
    }
}

 

위 코드를 실행해 결과를 확인해보겠습니다.

손흥민1, 이강인2, 황의조3, 황희찬4 순서대로 쓰레드를 생성했지만,

뒤죽박죽으로 출력되며, 결과적으로 종료순서도 3번 쓰레드가 제일 먼저 종료되었습니다.

 

멀티쓰레드를 활용하면 동시에 작업이 필요한 로직을 처리 할 수 있습니다.

LIST
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기