[java] verrou

Bonjour,

je voudrais mettre un verrou sur un flux OutputStream.

J'ai vu sur internet qu'il y avait des trucs synchronized mais aussi wait et notify.

Par contre j'ai pas trop compris comment ça s'utilisait.

Est-ce que quelqu'un s'y connait ?

Merci

4 réponses

  1. Voila mon code schematiquement :

    public class PServer {
        
        
        public static   void main(String[] args) throws IOException {
         
    	
            try{
    	
    	    
                // Ecoute infinie des requêtes des clients
                while(true){
                    Socket client = serveur.accept();
                    Clients c = new Clients(client,stmt,numero);
    		
                }
            }
            catch (Exception e){System.err.println(e);}
            finally{
                try{
                    if (serveur != null) {
    			serveur.close();
    			//System.out.println("serveur.close");
    		}
                }
                catch (Exception e){System.err.println(e);}
            }
        }
    } // !PServer
    
    
    class Clients extends Thread {
     public void run(){
            try{
    envoi_reponseWeb_au_client();
    } catch ....
    }
    


    Moi ce que je voudrais, c'est qu'il y ait qu'un thread à la fois qui execute la methode envoi_reponseWeb_au_client();

    J'avais pensé a un variable booleenne ecrire mais je ne sais pas où la déclarer pour que tous les clients aient la meme valeur de ecrire.

    bref je suis un peu perdue ...
    Un petit coup de main n'est pas de refus! ;-)
    0
    1. Salut,

      tu peux aller voir sur http://www.infini-fr.com/ il y a une rubrique "Java" et une sous-rubrique "Les threads en Java", c'est très bien expliqué ça te permettra d'y voir plus clair.
      0
      1. J'ai mis des synchronized sur certaines de mes méthodes.

        Pou moi, ça veut dire que quand un thread execute cette methode, les autres threads doivent attendre que le 1er thread ait fini pour faire cette meme methode.

        Est-ce que c'est ça ?
        Parce que moi, ça ne donne pas ça.

        Merci
        0