2010-11-30 5 views

답변

3
  • 하나의 클래스 만 확장 할 수 있으므로 상속이 여러 개있는 경우 인터페이스 만 사용할 수 있습니다. Thread 클래스를 확장하지는 않지만 runnable/callable 인터페이스를 구현한다.
  • 스레드 관리와 관련하여 executors을 사용합니다.
+1

+1 가능한 경우 상속을 피하십시오. ThreadFactory와 함께 Executor를 사용하여 실제로 실행될 코드 (Runnables와 Callables)와 스레드의 생성과 라이프 사이클 관리를 분리하는 것이 훨씬 깔끔합니다. –

1

필자가 아는 바로는 선호도의 문제입니다.

필자가 선호하는 것은 Runnable을 전달하는 것이다. 서브 클래 싱 방식이나 Thread가 Runnable을 구현한다는 사실을 좋아하지 않기 때문이다. 서브 클래 싱을 구현하는 서브 클래스 run()는, 서브 클래스 화가 나타내는 「is-a」관계를 남용합니다. 스레드의 Runnable를 작성해도 실제로는 값이 추가되지 않습니다. 다른 thread의 실행 가능한 구축 파라미터로서 1 개의 thread를 사용하는 등의 무의미한 것을 허용합니다 스레드.)

+0

+1 스레드를 Runnable로 사용할 수 있다는 문제의 패러다임에 대한 설명. –

관련 문제