Runnable 인터페이스의 역할은 무엇인가요?
Runnable 인터페이스의 역할은 자바에서 스레드를 생성하고 실행하기 위한 작업 단위를 정의하는 것입니다.
Runnable 인터페이스는 단 하나의 추상 메서드인 run() 메서드를 포함하고 있으며, 이 메서드 안에 스레드가 수행할 코드를 작성합니다.
구체적으로 Runnable 인터페이스는 다음과 같은 역할을 합니다: 1. 스레드 실행 로직 정의 Runnable 인터페이스를 구현하면 run() 메서드 내에 별도의 실행 흐름에서 수행할 작업 내용을 명시할 수 있습니다.
즉, 스레드가 시작되었을 때 수행할 작업을 캡슐화합니다.
2. 스레드 생성과 분리 다중 상속을 지원하지 않는 자바에서 기존 클래스를 상속받으면서 동시에 스레드 기능을 부여하고 싶을 때 Thread 클래스를 상속받는 대신 Runnable 인터페이스를 구현하여 스레드 작업을 분리할 수 있습니다.
3. Thread와의 결합 직접 Thread를 상속받지 않고 Runnable 구현체를 Thread 생성자에 전달함으로써, 실행할 태스크와 스레드 관리를 명확히 분리할 수 있습니다.
예) ```java Runnable task = new MyRunnable(); Thread thread = new Thread(task); thread.start(); ``` 4. 공유 자원 접근과 동기화 용이 여러 스레드가 하나의 Runnable 객체를 공유하여 실행할 경우, 객체 내의 필드를 통해 상태를 공유하고 적절한 동기화 처리하는 것도 용이합니다.
Runnable 인터페이스는 자바에서 멀티스레드 프로그래밍 시 실행할 작업을 직접 구현하는 표준화된 방법으로, 스레드의 실행 코드(run 메서드)를 정의하는 역할을 담당합니다.
이를 통해 스레드 작업과 스레드 생성 객체를 분리하여 유연하고 재사용 가능한 멀티스레드 코드를 작성할 수 있게 해줍니다.