IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Concurrence et multi-thread Java Discussion :

Problème d'instanciation de tableau de Threads


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Par défaut Problème d'instanciation de tableau de Threads
    Bonsoir,
    Je rencontre actuellement dans le cadre d'une simulation de commutateur ethernet (switch) un problème lors de l'instanciation du tableau de ports du commutateur (qui sont des threads) :

    Commutateur.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Commutateur {
     
    	private Port[] ports;
    	private TableCommutation table;
     
    	public Commutateur(int p) throws IOException {
    		for (int i = 0; i < p; i++) {
    			ports[i] = new Port(i+1024, i, this); /** Ligne 12 */
    			ports[i].start();
    		}
    	}
    Celà produit une erreur à l'exécution :
    Exception in thread "main" java.lang.NullPointerException
    at Commutateur.<init>(Commutateur.java:12)
    at LanCom.main(LanCom.java:9)
    Je n'ai encore jamais utilisé des tableaux de threads mais pour le commutateur puisse communiquer entre ses différents ports, il fallait un tableau pour savoir où envoyer les données.
    Peut-on faire ça autrement que par ces tableaux ?, Quelle erreur ai-je faite ?
    Pourriez-vous m'élairer sur l'erreur svp ?

    Merci

  2. #2
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Commutateur {
     
    	private ArrayList<Port> ports = new ArrayList<Port>();
    	private TableCommutation table;
     
    	public Commutateur(int p) throws IOException {
    		for (int i = 0; i < p; i++) {
    			ports.add(new Port(i+1024, i, this));
    			ports.get(i).start();
    		}
    	}

    si il t'as donner cette erreur ça n'a rien avoir avec les Thread c'est parceque tu n'as pas donner de taille a ton tableaux !!!
    donc ports[i] n'existe tout simplement pas

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Comme tu as déja le nombre total, je te conseille de rester sur des tableaux, il te suffit d'initialiser ton tableau de threads avec le nombre p comme taille de tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Commutateur(int p) throws IOException {
    		ports = new Port[p];
    		for (int i = 0; i < p; i++) {
    			ports.add(new Port(i+1024, i, this));
    			ports.get(i).start();
    		}
    	}

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Par défaut
    Mercii mhamedbj et wichtounet pour votre aide !! ca marcheee ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. threads problème pour passer un tableau
    Par royal380 dans le forum C
    Réponses: 11
    Dernier message: 12/05/2011, 00h05
  2. Problème de taille de tableau
    Par Beush dans le forum C
    Réponses: 4
    Dernier message: 01/11/2005, 17h41
  3. Problème de taille de tableau
    Par k-nine dans le forum C
    Réponses: 6
    Dernier message: 25/09/2005, 09h16
  4. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30
  5. problème d'affectation de tableau ...
    Par Mike888 dans le forum C
    Réponses: 23
    Dernier message: 26/02/2005, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo