Programming/Language Tip

안드로이드, 자바 - 러너블 (Runnable)

awesometic 2017. 3. 11. 16:03
반응형

 https://developer.android.com/reference/java/lang/Runnable.html

 The Runnable interface should be implemented by any class whose instances are intended to be executed by a thread. The class must define a method of no arguments called run.

 This interface is designed to provide a common protocol for objects that wish to execute code while they are active. For example, Runnable is implemented by class Thread. Being active simply means that a thread has been started and has not yet been stopped.

 In addition, Runnable provides the means for a class to be active while not subclassing Thread. A class that implements Runnable can run without subclassing Thread by instantiating a Thread instance and passing itself in as the target. In most cases, the Runnable interface should be used if you are only planning to override the run() method and no other Thread methods. This is important because classes should not be subclassed unless the programmer intends on modifying or enhancing the fundamental behavior of the class.


 간단히 말해 러너블은 스레드로 인해 실행이 가능한 인터페이스입니다. run() 추상 메서드가 포함되어 있어 개발자는 이를 정의해야만 하며, 해당 러너블을 구현하면 해당 러너블을 사용하는 스레드에서 정의된 run()을 실행합니다.

 또한 러너블 인터페이스는 특정 클래스가 스레드 클래스를 포함해 다중 상속을 해야할 때 대신 쓰일 수 있습니다. 자바에서는 다중 상속이 허용되지 않기 때문에 해당 클래스가 러너블 인터페이스의 run() 메서드를 구현함으로써 작업자 스레드를 따로 만들어 사용할 수 있게 합니다.

 실행될 코드 그 자체를 객체로 저장했다고 생각하셔도 될 것 같습니다. 따라서 나중에 실행될 수 있게 핸들러(Handler)에 전달할 수 있습니다. 러너블 객체 자체는 run() 메서드를 포함할 뿐 아무 작업도 하지 않습니다.

반응형