Coding Planet
Thread(스레드)란? Java에서의 Thread 클래스 본문
반응형
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() 메소드 하나만을 정의하며, 이 메소드는 스레드가 실행될 때 호출되는 메소드이다.
반응형
'CS' 카테고리의 다른 글
[운영체제] 1. 운영체제란(운영체제의 목표, 분류 방식) (1) | 2024.01.19 |
---|---|
Stateful과 Stateless의 차이 - 세션 관리 (0) | 2024.01.19 |
HTTP Reponse/Request 구조 - start line, headers, body (1) | 2024.01.02 |
플러그인(Plugin)이란? (2) | 2023.05.18 |
동기화(同期化, synchronization)란? (0) | 2023.05.04 |
Comments