2012-08-06 3 views
1

ScheduledThreadPoolExecutor의 생성자 중 하나를 사용하여 ThreadFactory를 전달할 수 있습니다.ThreadFactory를 ScheduledThreadPoolExecutor에 전달

이미 스레드 풀을 다루고 있기 때문에 조금 이상합니다. 스레드 수명을 관리하는 방법을 알고 있다는 의미입니다.

필자의 견해로 볼 때, 이것은 전략 패턴과 유사하여 스레드 작성 논리를 재정의하고 스케줄링 서비스를 유지할 수있게 해줍니다.

  1. 맞습니까?
  2. Java의 ThreadFactory에는 어떤 것이 있습니까?

고맙습니다!

+0

당신은 그것을 쓸모있는 스레드에게 의미있는 이름을주고, 스레드를 만들 수 있습니다 데몬 스레드의 우선 순위 변경, 기본 클래스 로더 변경, 자체 스레드 하위 클래스 사용 –

답변

3

ThreadFactory은 일반적으로 스레드를 만드는 방법을 자세히 설명하는 팩토리 패턴으로 사용됩니다.

일반적으로 스레드를 논리적으로 명명하는 경우가 있습니다.

public WorkerThreadFactory implements ThreadFactory { 
    private int counter = 0; 

    public Thread newThread(Runnable r) { 
    return new Thread(r, "Worker" + "-" + count++); 
    } 
} 

This은 유스 케이스의 철저한 목록입니다.

A는

TheseExecutors.defaultThreadFactory() 그것이 익숙해있는 장소입니다 것 ThreadFactory를 구현 내장되어 있습니다.

+0

덕분에 도움이되었습니다. – Vitaliy

0

사용자 지정 스레드 팩토리를 사용하는 것이 좋습니다. 기본 공장은별로 사용하지 않습니다. 당신은 다음과 같은 이유로 사용자 정의 공장을 사용해야합니다

  1. 사용자 정의 스레드 이름을 가지고
  2. 스레드 유형 사이에
  3. 스레드 우선 순위를 선택하려면
  4. 처리 할 수있는 캐치되지 않는 예외

를 선택하려면 이 게시물을 확인하십시오 : http://wilddiary.com/understanding-java-threadfactory-creating-custom-thread-factories/