가능한 중복 :
Java: “implements Runnable” vs. “extends Thread”Java에서 스레드를 실행하는 가장 좋은 방법은 무엇입니까?
내가의 Runnable 인터페이스를 사용하거나 Thread 클래스에서 확장해야 하는가? 하나와 다른 것에 어떤 이점이 있습니까?
미리 감사드립니다.
가능한 중복 :
Java: “implements Runnable” vs. “extends Thread”Java에서 스레드를 실행하는 가장 좋은 방법은 무엇입니까?
내가의 Runnable 인터페이스를 사용하거나 Thread 클래스에서 확장해야 하는가? 하나와 다른 것에 어떤 이점이 있습니까?
미리 감사드립니다.
+1 가능한 경우 상속을 피하십시오. ThreadFactory와 함께 Executor를 사용하여 실제로 실행될 코드 (Runnables와 Callables)와 스레드의 생성과 라이프 사이클 관리를 분리하는 것이 훨씬 깔끔합니다. –
필자가 아는 바로는 선호도의 문제입니다.
필자가 선호하는 것은 Runnable을 전달하는 것이다. 서브 클래 싱 방식이나 Thread가 Runnable을 구현한다는 사실을 좋아하지 않기 때문이다. 서브 클래 싱을 구현하는 서브 클래스 run()
는, 서브 클래스 화가 나타내는 「is-a」관계를 남용합니다. 스레드의 Runnable를 작성해도 실제로는 값이 추가되지 않습니다. 다른 thread의 실행 가능한 구축 파라미터로서 1 개의 thread를 사용하는 등의 무의미한 것을 허용합니다 스레드.)
+1 스레드를 Runnable로 사용할 수 있다는 문제의 패러다임에 대한 설명. –
복제 http://stackoverflow.com/questions/541487/java-implements-runnable-vs-extends-thread –