Runnable 인터페이스의 목적은 무엇인가요?
Runnable 인터페이스의 목적은 자바에서 스레드로 실행할 작업의 코드를 정의하기 위해 사용되는 표준적인 방법을 제공하는 것입니다.
구체적으로 설명하면, Runnable 인터페이스는 실행할 작업 내용을 run() 메서드 하나만을 포함하는 함수형 인터페이스로, 해당 메서드 안에 스레드가 수행할 작업을 구현합니다.
주요 목적은 다음과 같습니다: 1. 스레드 작업의 캡슐화 Runnable을 구현하면 실행할 작업 내용을 독립적인 객체에 캡슐화할 수 있습니다.
이렇게 하면 작업과 스레드 생성이 분리되어 코드 구조가 유연해집니다.
2. 스레드 생성과 실행의 분리 Thread 클래스 자체를 상속받아 스레드를 만드는 대신 Runnable 인터페이스를 구현하고, 구현체를 Thread 생성자의 인자로 넘겨 스레드를 생성하는 방식을 권장합니다.
이로써 자바는 다중 상속이 불가능함에도 불구하고 다른 클래스를 상속받으면서 스레드를 구현할 수 있는 유연성을 제공합니다.
3. 코드 재사용과 유지보수성 향상 Runnable을 구현한 작업 클래스는 여러 스레드에서 반복 사용 가능하며, 실행 환경과 무관하게 작업 로직만 캡슐화되어있기에 코드 유지보수가 용이합니다.
4. 비동기 작업 실행 지원 Runnable은 비동기적으로 수행할 작업 대상 객체의 표준 규격으로, Executor 프레임워크 등 다양한 환경에서 손쉽게 사용할 수 있습니다.
정리하면, Runnable 인터페이스는 자바에서 스레드로 실행할 작업 내용을 표준화하여 캡슐화하고 스레드 생성과 작업 수행을 분리하는 역할을 하여, 멀티스레딩 프로그래밍을 보다 유연하고 효율적으로 할 수 있도록 돕는 목적으로 만들어졌습니다.