[java] 자바에서의 쓰레드(Thread)
자바에서 쓰레드(Thread)는 프로세스 내에서 실행되는 작업의 가장 작은 단위를 나타냅니다. 쓰레드를 사용하면 동시에 여러 작업을 처리할 수 있으므로, 시간을 절약하고 성능을 높일 수 있습니다.
쓰레드 생성
class MyThread extends Thread {
public void run() {
// 쓰레드가 실행할 작업을 구현
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // 쓰레드 실행
}
}
위의 예제에서 MyThread
클래스는 Thread
클래스를 상속받아 새로운 쓰레드를 생성합니다. run
메서드에는 쓰레드가 실행할 작업을 구현합니다.
Runnable
인터페이스를 이용한 쓰레드 생성
class MyRunnable implements Runnable {
public void run() {
// 쓰레드가 실행할 작업을 구현
}
}
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start(); // 쓰레드 실행
}
}
Runnable
인터페이스를 사용하여 쓰레드를 생성할 수도 있습니다. 위의 예제에서 MyRunnable
클래스가 Runnable
인터페이스를 구현하고, Thread
클래스를 이용하여 새로운 쓰레드를 생성합니다.
쓰레드 동기화
여러 쓰레드가 공유 자원에 동시에 접근할 때 발생하는 문제를 해결하기 위해 쓰레드 동기화를 사용할 수 있습니다. 자바에서는 synchronized
키워드를 사용하여 쓰레드 동기화를 구현할 수 있습니다.
class MySynchronizedThread {
public synchronized void doTask() {
// 동기화된 작업 수행
}
}
위의 예제에서 synchronized
키워드를 사용하여 doTask
메서드를 동기화합니다.
쓰레드를 사용하여 병렬 처리 및 동시성 프로그래밍을 구현할 때는 주의가 필요하며, 쓰레드 관련하여 더 많은 공부가 필요합니다.
참고 자료
- Oracle 자바 공식 문서: https://docs.oracle.com/javase/tutorial/essential/concurrency/
쓰레드를 다루는 것은 복잡하고 중요한 주제이므로, 자세한 내용을 학습하는 것을 권장합니다.