Coding Planet

Thread(스레드)란? Java에서의 Thread 클래스 본문

CS

Thread(스레드)란? Java에서의 Thread 클래스

jhj.sharon 2023. 5. 4. 21:33
반응형

 

1. Thread(스레드)란?

 

  • 프로그램이란 일종의 명령어 집합으로, 우리가 컴퓨터에 명령을 내리면 그 명령을 수행하는 것이다.
  • 이 명령어를 수행하는 동안에는 일종의 실행 흐름이 존재하는데, 이 실행 흐름을 스레드(Thread)라고 한다.
  • 스레드는 독립적인 실행 흐름이며, 하나의 프로그램 내에서 여러 개의 스레드가 동시에 실행될 수 있다.
  • 이러한 스레드는 프로세스(Process)의 일부로 실행되며, 해당 프로세스의 자원을 공유한다.
  • 이렇게 스레드를 사용하면 여러 작업을 동시에 수행할 수 있어서 시스템의 성능을 향상시키는 등 여러 가지 이점을 얻을 수 있다.
  • 다만 스레드를 사용하는 경우에는 하나의 스레드가 다른 스레드에 영향을 끼치지 않도록 동기화(Synchronization)를 해야 한다. 이러한 동기화는 스레드가 서로 공유하는 자원에 대한 접근을 제어하여 충돌이나 에러를 방지할 수 있다.

 

 

2. Java에서  Thread 클래스 사용하는 예제

  • Java에서 Thread 클래스는 멀티스레딩을 구현할 수 있는 클래스 중 하나이다. 이 클래스를 상속하거나 Runnable 인터페이스를 구현하여 새로운 스레드를 만들 수 있다.
  • 이 예제에서는 ThreadExample 클래스가 Thread 클래스를 상속받아 스레드로 만들어졌다. 각 스레드는 run 메소드에서 주어진 메시지를 10번 출력하고, 출력 후 1초간 대기한다.
  • main 메소드에서는 t1과 t2 객체를 생성하고, start 메소드를 호출하여 스레드를 실행시킨다. 스레드는 동시에 실행되므로 두 개의 스레드가 번갈아가면서 메시지를 출력한다.
public class ThreadExample extends Thread {

    private String message;

    public ThreadExample(String message) {
        this.message = message;
    }

    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(message);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        ThreadExample t1 = new ThreadExample("Thread 1");
        ThreadExample t2 = new ThreadExample("Thread 2");
        t1.start();
        t2.start();
    }
}

 

**Runnable 인터페이스는 Java에서 멀티 스레딩을 구현하기 위해 사용되는 인터페이스이다.

  Runnable 인터페이스는 run() 메소드 하나만을 정의하며, 이 메소드는 스레드가 실행될 때 호출되는 메소드이다.

반응형
Comments