2012-11-21 4 views
2

나는 Executor 인터페이스를 사용하는 것이 명시 적으로 스레드를 만드는 것보다 더 나은 프로그래밍 습관이라고 읽었습니다. 제 생각에는 내 스레드를 만들고 Thread 생성자 인수로 초기화하는 것이 훨씬 쉽습니다. 지금까지 그렇게 해왔 던 방식으로 스레드를 만드는 것보다 Executor을 사용하면 어떤 이점이 있습니까?명시 적으로 스레드를 생성하는 대신 Executor 인터페이스 사용

+2

관심이 있으시면 (관심이 있다면) - 물어보기 전에 Google을 사용해 보셨습니까? –

+1

Google에서 검색했지만 큰 자습서 만 나타났습니다. 시간을 허 튼게해서 미안해. –

답변

2

스레드를 생성하는 것은 값 비싼 연산이므로 스레드를 스레드 풀로 반환하는 것이 좋습니다. 이것은 특히 각 클라이언트 요청마다 스레드가 할당 된 서버에서 필요합니다.

필요할 때마다 스레드를 다시 생성하면서 초당 요청이 수백 번 발생하면 성능에 많은 영향을 미칩니다.

그래서 작은 스레드가 필요할 경우 Executor없이 만들 수 있습니다. 응용 프로그램에서 많은 스레드를 만들 가능성이 높으면 Executor를 사용하십시오.

+0

감사합니다. 그것은 도움이되었습니다. –

0

장점은 스레드가 매번 생성하는 대신 풀에서 사용된다는 것입니다. 오라클 당으로

concurrency tutorial

집행 인은 실행 스레드를 관리하기위한 높은 수준의 API를 정의합니다. 병렬로 실행되는 스레드 : java.util.concurrent의에 의해 제공 집행자 구현은 당신이 얻을 전부 명시 적 Thread 객체와

1

대규모 애플리케이션을위한 스레드 풀 관리에 적합 제공합니다. ExecutorService을 사용하면 다음을 얻을 수 있습니다.

  • 작업 실행간에 재활용되는 스레드 풀.
  • 스레드가 새 작업을 자동으로 확인하는 스레드 안전 차단 작업 대기열입니다.
  • 암시 적로드 균형 조정.
  • 암시 적 효율성. 스레드 생성 오버 헤드가 발생하지 않기 때문입니다.

ExecutorService은 생산자 - 소비자 패러다임의 쉬운 구현을 허용합니다.

관련 문제