2012-08-06 3 views
1

L'un des constructeurs de ScheduledThreadPoolExecutor me permet de lui passer une ThreadFactory.Passage d'une ThreadFactory à ScheduledThreadPoolExecutor

C'est un peu bizarre puisque je fais déjà face à un pool de threads! Ce qui signifie qu'il sait gérer la durée de vie du fil. De mon point de vue, cela ressemble au modèle de stratégie, ce qui me permet de contourner la logique de la création de thread tout en conservant les services de planification qu'il fournit.

  1. Je comprends bien?
  2. Quelles sont les fonctionnalités intégrées de ThreadFactories dans Java?

Merci beaucoup!

+0

Vous pouvez l'utiliser pour donner des noms significatifs au thread, rendre les threads daem ons, changez la priorité des threads, changez le chargeur de classe par défaut, utilisez votre propre sous-classe Thread –

Répondre

3

ThreadFactory est généralement utilisé comme un modèle d'usine pour détailler la façon dont vous créez vos threads.

Un cas d'utilisation typique consiste à nommer vos threads logiquement.

public WorkerThreadFactory implements ThreadFactory { 
    private int counter = 0; 

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

This est une liste assez exhaustive des cas d'utilisation.

construit dans la mise en œuvre de ThreadFactory serait Executors.defaultThreadFactory()

These sont les endroits où il se habitue.

+0

Merci, cela a aidé. – Vitaliy

0

Il est toujours recommandé d'utiliser une fabrique de fils personnalisée. Les usines par défaut ne sont pas très utiles. Vous devez utiliser une usine personnalisée pour les raisons suivantes:

  1. Pour avoir des noms de fils personnalisés
  2. Pour choisir entre les types de fil
  3. Pour choisir cette discussion Priorité
  4. Pour gérer les exceptions non rattrapées

Vérifiez ce post: http://wilddiary.com/understanding-java-threadfactory-creating-custom-thread-factories/

Questions connexes