Salut,
Pour créer un Executor facilement, j'utilise :
	
	Executors.newSingleThreadPoolExecutor();
 par exemple.
Le problème, c'est que les threads sont non-démons.
N'y-a-t-il pas quelque part un truc pour créer des thread démons par défaut, déjà implémenté dans l'API ?
Car pour l'instant je me suis fait une classe :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 
 | /**
 * Complément de la classe {@code java.util.concurrent.Executors}, permettant de créer un pool de threads démons.
 * 
 * @author rom
 */
public final class DaemonExecutors {
 
	/** ThreadFactory à utiliser pour créer des threads démons. */
	private static final ThreadFactory threadFactory = new ThreadFactory() {
 
		public Thread newThread(Runnable r) {
			/* On demande au ThreadFactory par défaut de créer un Thread. */
			Thread thread = Executors.defaultThreadFactory().newThread(r);
			/* On configure ce thread en mode démon. */
			thread.setDaemon(true);
			/* On le retourne. */
			return thread;
		}
	};
 
	/** Interdiction d'instancier. */
	private DaemonExecutors() {}
 
	/**
         * Retourne un {@code ThreadFactory} de threads démons.
         * 
         * @return {@code ThreadFactory} de threads démons.
         */
	public static ThreadFactory defaultDaemonThreadFactory() {
		return threadFactory;
	}
 
	/**
         * Retourne un exécuteurde threads démons.
         * 
         * @return Exécuteur de threads démons.
         */
	public static ExecutorService newSingleDaemonThreadExecutor() {
		return Executors.newSingleThreadExecutor(defaultDaemonThreadFactory());
	}
 
	/**
         * Retourne un exécuteur planifié de threads démons.
         * 
         * @return Exécuteur planifié de threads démons.
         */
	public static ScheduledExecutorService newSingleDaemonThreadScheduledExecutor() {
		return Executors.newSingleThreadScheduledExecutor(defaultDaemonThreadFactory());
	}
 
} | 
 qui permet de créer des threads démons facilement, mais je trouve cela étonnant que ça ne soit pas dans l'API standard...
Pourriez-vous confirmer ou infirmer svp?
						
					
Partager