Dois-je créer un nouvel ExecutorService dans chaque appel de méthode ou en utiliser un par classe? Quelle est l'option préférée en termes de performance?ExecutorService - crée de nouvelles instances dans la méthode vs une par classe
public class NotificationService {
public void sendNotification(User recipient) {
ExecutorService notificationsPool = Executors.newFixedThreadPool(10);
// code
notificationsPool.shutdown();
}
}
Ou
public class NotificationService {
ExecutorService notificationsPool = Executors.newFixedThreadPool(10);
public void sendNotification(User recipient) {
// code
}
}
Vous ne choisissez pas cela en fonction des performances. Vous choisissez cela en fonction de ce qui est nécessaire. Avez-vous besoin de 10 nouveaux threads pour envoyer une notification à un utilisateur? Quel est l'intérêt d'avoir un pool de 10 threads réutilisables si vous n'en utilisez qu'un, une seule fois (en supposant que c'est ce que ferait l'envoi d'une notification à un utilisateur)? –
L'utilisateur peut être associé à plus d'une clé. Cependant, ce n'est pas un bon exemple de code qui a été modifié avant de poster. – Justas