[Java] 프로세스와 스레드 - 2

2024. 2. 17. 10:42Memorizing/Java

728x90

본 포스팅에서는 Thread를 java에서 어떻게 생성할 수 있는지에 대해 다룹니다. 

Thread

가장 기본적인 방법으로 Thread 클래스를 상속받아 스레드를 만들 수 있습니다. 예제 코드는 아래와 같습니다. 스레드를 new를 통해서 생성한 후, start메서드를 호출하면 스레드가 실행되고, run메서드를 호출하게됩니다.

public class TestThread extends Thread {
    @Override
    public void run() {
                // 쓰레드 수행작업
    }
}

...

TestThread thread = new TestThread(); // 쓰레드 생성
thread.start() // 쓰레드 실행

Runnable

Thread보다 널리, 많이 쓰이는 방법으로 Runnable 인터페이스를 이용하는 방법이 있습니다. 코드상으로는 더 번거롭기는 하지만, 인터페이스를 사용하기 때문에 필요한 다른 클래스로부터 상속을 받아 사용할 수도 있기 때문에 확장성이 좋습니다. 예제 코드는 아래와 같습니다. 

public class TestRunnable implements Runnable {
				@Override
				public void run() {
							// 쓰레드 수행작업 
				}
}

...

Runnable run = new TestRunnable();
Thread thread = new Thread(run); // 쓰레드 생성

thread.start(); // 쓰레드 실행

추가적으로 Runnable 인터페이스를 사용할 때, 람다식으로 메소드를 정의한 후, 사용할 수도 있습니다. 람다식 관련 내용은 추후 다른 게시물에 포스팅할 예정입니다. Runnable에서 람다식을 이용하는 예제 코드는 아래와 같습니다. 

public class Main {
    public static void main(String[] args) {
        Runnable task = () -> {
            int sum = 0;
            for (int i = 0; i < 50; i++) {
                sum += i;
                System.out.println(sum);
            }
            System.out.println(Thread.currentThread().getName() + " 최종 합 : " + sum);
        };

        Thread thread1 = new Thread(task);
        thread1.setName("thread1");
        Thread thread2 = new Thread(task);
        thread2.setName("thread2");

        thread1.start();
        thread2.start();
    }
}

'Memorizing > Java' 카테고리의 다른 글

[Java] 프로세스와 스레드 - 4  (1) 2024.02.17
[Java] 프로세스와 스레드 - 3  (0) 2024.02.17
[Java] 프로세스와 스레드 - 1  (0) 2024.02.17
[Java] 상속  (1) 2024.02.07
[Java] Class  (0) 2024.02.07