T.I.L #30 쓰레드(Thread)

개발자지망생·2023년 11월 11일
0

쓰레드(Thread)란?

쓰레드는 프로세스 내에서 실행되는 실행 단위이다. 여기서 프로세스란 실행 중인 프로그램을 말한다. 비유를 하자면 프로세스는 요리사, 쓰레드는 요리라고 할 수 있다. 한 요리사가 여러 요리를 동시에 할 수 있듯이, 하나의 프로세스도 여러 쓰레드를 동시에 실행할 수 있다.

쓰레드(Thread)를 사용하는 이유

쓰레드를 사용하는 주된 이유는 병렬 처리 때문이다. 병렬 처리를 통해 여러 작업을 동시에 진행함으로써 프로그램의 실행 효율을 높일 수 있다. 예를 들어, 한 프로그램이 데이터를 다운로드하는 동안 다른 쓰레드에서 사용자 인터페이스를 업데이트할 수 있다.

쓰레드(Thread)의 생성과 실행

1. Theread 클래스를 확장하는 방법

class MyThread extends Thread {
    public void run() {
        // 쓰레드가 실행할 작업
    }
}

MyThread t = new MyThread();
t.start(); // 쓰레드 실행

2. Runnable 인터페이스를 구현하는 방법

class MyRunnable implements Runnable {
    public void run() {
        // 쓰레드가 실행할 작업
    }
}

Thread t = new Thread(new MyRunnable());
t.start(); // 쓰레드 실행

주의할 점

- 동시성과 병렬성

쓰레드는 동시에 여러 작업을 수행할 수 있지만, 실제로 병렬로 실행되는지는 실행 환경에 따라 다르다. 멀티 코어 프로세서에서는 진정한 병렬 실행이 가능하다.

- 공유 자원

쓰레드는 같은 프로세스 내의 자원을 공유한다. 이 때문에 여러 쓰레드가 같은 데이터에 접근하려 할 때 동기화 문제가 발행할 수 있다.

- 쓰레드 안정성(Thread Safety)

공유 자원을 사용할 때 발생할 수 있는 문제를 방지하기 위해 동기화(synchronization)와 같은 기술을 사용해야 한다.

참고한 것 : 자바의 정석 , 구글 서칭

0개의 댓글