| Bunyan - aujourd’hui à 13:50
| https://www.jeuxvideo.com/forums/1-47-85601-1-0-1-0-java-tous-mes-threads-bloques.htm#message_85603
| Ta pression sur "entrée" doit débloquer les threads. Je ne pense pas que tu sois en "full GC", mais tu as plutôt une création de thread folle qui part en vrille et qui se débloque à ton événement sur "entrée".
Hm.. Et comment c'est possible que ma pression sur Entrée débloque les Threads (j'ai oublié de préciser mais c'est important, mes Threads SEMBLENT bloquer sur un PrintStream, un System.out.println() donc dans mon cas) ?
| Sans savoir ce que tu fais, ni comment tu fais, je ne peux pas en dire plus.
Alors, je vais essayer d'expliquer. Il s'agit d'un bot pour un jeu en ligne pour le contexte (un bot de modération, rien de relou ou d'illégal). Au niveau du fonctionnement ça se passe comme ça :
- Création d'un Thread d'écoute du serveur principal
- Réception d'un paquet contenant l'ip d'un serveur secondaire
- Création d'un Thread d'écoute du serveur secondaire
- - Ici j'ai donc deux threads en boucle "infinie" qui écoutent les deux serveurs (snippet : http://pastebin.com/yuSZrkzF )
- A chaque fois qu'un message est reçu, je le parse. Mon parsing est constitué de :
- - Parsing tel quel du paquet reçu, je sépare donc les diverses informations qu'il contient. Au final je récupère un objet de type DataPacket (spécif de DataPacket : http://pastebin.com/fy3Qj2Qu )
- - On récupère le processeur de ce paquet et on l'exécute (l'action à effectuer lorsqu'on reçoit tel paquet, par exemple je reçoid un DataPacket de type ChatMessage, je récupère son processeur, je l'exécute et le contenu du paquet s'affiche dans ma console)
- - C'est peut-être là que ça coince, mes Processors sont des Threads, qui pour la plupart comportent juste un System.out.println() m'affichant les données du paquet de façon propre
- - Si ces trois derniers points ne sont pas assez clairs, voilà ma méthode parse simplifiée : http://pastebin.com/bjpyG0W8
C'est possible que le blocage survienne à cause d'une trop forte création de threads à cause de mes processeurs qui sont tous des threads ?
S'il y a besoin de plus d'infos je peux les fournir, mais là c'est mon fonctionnement général, je pense que tout y est.