Thread dans une applet ??

Résolu
nabta Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 27 avril 2008 - 23 avril 2008 à 22:26
nabta Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 27 avril 2008 - 25 avril 2008 à 03:38
bon soir ou bonjour, je cherche des
codes de sources qui utilise des threads dans des Japplet, afin de voir
comment m'en profiter pour implementer un code sur Netbeans qui
manipule des thread d'envoi et de reception de données et l'introduire
dans une applet.merci 

3 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
24 avril 2008 à 09:40
Soit plus claire stp. Quel genre d'envoi de données? C'est du réseau, un producteur-consommateur, ou bien? Dans une applet on peut faire à peu prêt la même chose que dans une application standard donc il n'y a pas de souci.

Pour crée un thread, je connais deux méthodes. Soit tu crées une class Runnable soit tu crées directement un class Thread.

Première méthode :


Par exemple :
<hr size= "2" width="100%" />
public class ThreadBete extends Thread {

    private String texte;
    private int nbAffichages;

    public ThreadBete(String texte, int nbAffichages) {
        this.texte = texte;
        this.nbAffichages = nbAffichages;
    }

    public int getNbAffichages() {
        return nbAffichages;
    }

    public String getTexte() {
        return texte;
    }

    public void setTexte(String texte) {
        this.texte = texte;
    }

    public void run() {
        for (int i = 0; i < nbAffichages; i++) {
            System.out.println(texte);
        }
    }

}

et le test qui va avec :
<hr size="2" width="100%" />
public class TestThreadBete {

    public static void main(String... args) {
        Thread threadA = new ThreadBete("A", 1000);
        Thread threadB = new ThreadBete("BBBBBBBB", 1000);

        threadA.start();
        threadB.start();
    }

}

Si tu lances ça tu verras normalement que le threadA et le threadB ne s'exécutent pas séquentiellement. Selon ton processeur et ta version de Java, ils vont alterner plus ou moins souvent.

Deuxième méthode


Tu peux faire la même chose avec Runnable :
<hr size ="2" width="100%" />
public class RunnableBete implements Runnable {

    private String texte;
    private int nbAffichages;

    public RunnableBete(String texte, int nbAffichages) {
        this.texte = texte;
        this.nbAffichages = nbAffichages;
    }

    public int getNbAffichages() {
        return nbAffichages;
    }

    public String getTexte() {
        return texte;
    }

    public void setTexte(String texte) {
        this.texte = texte;
    }

    @Override
    public void run() {
        for (int i = 0; i < nbAffichages; i++) {
            System.out.println(texte);
        }
    }

}

et la classe de test :
<hr size="2" width="100%" />
public class TestRunnableBete {

    public static void main(String... args) {

        Thread threadA = new Thread(new RunnableBete("A", 1000),
                "Je suis le threadA");
        Thread threadB = new Thread(new RunnableBete("BBBBBBBB", 1000),
                "Je suis le threadB");

        threadA.start();
        threadB.start();
    }

}

Pour ce qui est de la synchronisation, on utilise généralement les instructions wait(), notify() et notifyAll(). Attention, en règle générale, les méthodes où tu appelles ces instructions doivent contenir le mot-clé synchronized dans leur définition.

Exemple :
<hr size="2" width="100%" />
public synchronized void lireMessage(){
    if(messages.isEmpty()) wait();
    System.out.println(messages.removeFirst());
    notify();
}
3
nabta Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 27 avril 2008
25 avril 2008 à 03:22
salut est-ce que quelqu'un a un code de source about animation de thread dans des applet, pour faire une idée
0
nabta Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 27 avril 2008
25 avril 2008 à 03:38
thanks a lot pour la reponse.
0
Rejoignez-nous