Client server
Résolu/Fermé
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
-
9 févr. 2017 à 13:43
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 9 févr. 2017 à 22:14
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 9 févr. 2017 à 22:14
A voir également:
- Client server
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
- Orange service client - Guide
- Scp server - Forum Jeux vidéo
- Filezilla server - Télécharger - Téléchargement & Transfert
- Formate pour taxer client 500€ ✓ - Forum Consommation & Internet
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
9 févr. 2017 à 22:14
9 févr. 2017 à 22:14
Bonjour,
Le problème vient de la classe Timer, elle génère un nombre monstrueux de threads identiques qui consomme la RAM de ton PC.
Voici la stack des threads qui sont créés :
Le problème vient donc de la méthode run() de serviceChroTime qui est appelé indéfiniment et ce à cause de ta boucle while dans la classe Timer.
Ta boucle tourne sans jamais s'arrêter créant de nouveaux threads en continue. Commences par supprimer cette boucle while, un seul thread devrait suffire pour l'instant.
Le problème vient de la classe Timer, elle génère un nombre monstrueux de threads identiques qui consomme la RAM de ton PC.
Voici la stack des threads qui sont créés :
"Thread-8254" #8268 prio=5 os_prio=0 tid=0x0000000369fa3800 nid=0x2a680 runnable [0x00000003985bf000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
- locked <0x00000000de2a6658> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
- locked <0x00000000de2a6658> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(Unknown Source)
at timer.serviceChroTime.run(serviceChroTime.java:23)
Le problème vient donc de la méthode run() de serviceChroTime qui est appelé indéfiniment et ce à cause de ta boucle while dans la classe Timer.
public static void iniserver() throws Exception { ServerSocket ss = new ServerSocket(1111); System.out.println("dans l'attende d'une connection"); Socket socket = ss.accept(); System.out.println("vous etes connecté..."); while (true) { new serviceChroTime(socket).start(); } }
Ta boucle tourne sans jamais s'arrêter créant de nouveaux threads en continue. Commences par supprimer cette boucle while, un seul thread devrait suffire pour l'instant.