Aucun filetage n'est requis dans votre classe EventManager
.
Je suppose, il est utilisé comme écouteur et maintenez le EventExecutors
. Lorsque le feu a même tiré, les organisateurs de l'événement ficher et de tirer.
S'il n'y a aucun événement votre MainProgam (autres que Event Manager) en train de fermer l'application (Vous ne l'avez pas montré Quel est le programme principal et comment l'utiliser EventManager
et ce qui est Event
dans votre contexte)
private final ExecutorService executor = Executors.newFixedThreadPool(5);
executor.execute(new Runnable(){
@Override
public void run() {}
});
Les lignes ci-dessus ne font aucune activité dans votre programme. C'est juste arrêter le système/JVM de descendre. Une fois que vous commencez à l'exécuteur, vous devez appeler shutdown()
pour fermer la ExecutorService
- Vérifiez votre méthode Shutdown
dans EventManager
classe
C'est pourquoi sans ce bloc votre code d'arrêter (dans votre accident de la terminologie) après 20 minutes (après tous les événements exécutés Probablement). Si vous avez ceci dans votre constructeur alors vous devez appeler shutDown pour l'abattre, sinon il restera en ligne.
Et ce n'est pas moyen approprié d'attendre une event
MISE À JOUR:
An unused ExecutorService should be shut down to allow reclamation of its resources
de Java API
Pouvez-vous poster une trace de pile ou tout ce que vous entendez par l'accident? – lpiepiora
De même, comment la classe est-elle utilisée par un autre code? –
Oh oui, désolé j'ai oublié de mentionner que je ne reçois aucune exception ou pile de traces - C'est comme si System.exit (0) est déclenché. Tout ce que je reçois est "BUILD SUCCESS" (comme NetBeans montre généralement quand un programme se termine avec succès) –