Programming/자바(Java)

13-3 쓰레드의 구현과 실행

먹보 개발자 2024. 10. 18. 15:12

1. Thread클래스를 상속

class MyThread extends Thread {
	public void run() { // Thread클래스의 run()을 오버라이딩
    	/* 작업내용 */
        }
}

 

2. Runnable인터페이스를 구현 - 더 유연함

class MyThread2 implements Runnable {
	public void run() { // Runnable인터페이스의 추상메서드 run()을 구현
    	/* 작업내용 */
        }
}

 

쓰레드의 실행

- 쓰레드를 생성한 후에 start()를 호출해야 쓰레드가 작업을 시작한다.

*start()는 실행가능한 상태가 되는것이지 반드시 실행하는것은 아니다. 언제 실행될지는 OS의 스케줄러가 결정한다. (start 했다고 즉시 실행되거나 먼저 실행되는것이 아니다.)

 

start()와 run()

run()을 직접 호출하면 그냥 일반적인 메서드 호출이 되어 현재 쓰레드에서 작업이 실행된다. 즉, 새로운 쓰레드가 생성되지 않는다. start()를 호출하면 새로운 쓰레드가 생성되고, 그 쓰레드에서 run() 메서드가 병렬로 실행된다.

→ 병렬로 작업을 처리하고 싶을 때는 반드시 start()를 호출해야한다.