Salut,

Pour créer un Executor facilement, j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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?