rss
[java] synchronized
par karine
 Fil de Discussions
Statut : Non résolu
lundi 13 juin 2005 à 11:01:20
Bonjour,

j'ai une méthode, et j'ai des threads clients qui executent cette methode.
Je voudrais qu'il n'y ait qu'un seul client à la fois qui execute cette methode.

J'ai essayé avec synchronized, mais ça n'a pas l'air de marcher. Je vous passe le code :

public synchronized traitement() {
System.out.println(tmp);
System.out.println(referer);
System.out.println(ID);
}


Moi je voudrai avoir à l'affichege tmp + referer + ID de chaque client, dans cet ordre.


Mais j'ai des trucs du genre
Referer
Referer
ID
ID
ID
ID


Malgré le synchronized, tout est imbriqué.

Comment je peux faire ?
Merci
Répondre à karine  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Kermitt31, le lundi 13 juin 2005 à 11:53:05 Fil de Discussions
C'est pas beau comme solution mais si tu fais un truc du style
public synchronized traitement() {
System.out.println(tmp + "\n" + referer + "\n" + ID);
}

Ca te fais toujours pareil ? Proverbe Thaïlandais:Pingouins dans les champs,
hiver très méchant.
Répondre à Kermitt31

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par karine, le lundi 13 juin 2005 à 15:26:45 Fil de Discussions
En fait j'ai mis des affichages pour pas vous embrouiller la tête.
Mais il faut imaginer qu'à la place des System.out.println, j'ai des requêtes sur une BD, et les threads font n'importe quoi !

Comment je peux faire, synchronized ne fonctionne pas.
Comment faire pour qu'une méthode ne soit appelée que par un thread à la fois ?

merci beaucoup!!
Répondre à karine

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Kermitt31, le lundi 13 juin 2005 à 16:25:00 Fil de Discussions
Tu connais les semaphores ??? Tu utilises ce sytème ! Je ne connais pas cette solution en Java, je la connais juste en C mais elle existe forcement en Java.

Essaie de te renseigner la dessus Proverbe Thaïlandais:Pingouins dans les champs,
hiver très méchant.
Répondre à Kermitt31

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par karine, le mardi 14 juin 2005 à 14:09:21 Fil de Discussions
Rebonjour !

j'ai une petite question, est-ce que oui ou non synchronized mis devant un nom de méthode empêche deux threads de faire cette méthode en même temps ?

Parce que j'ai un compteur qui est incrémenté dans cette méthode et les threads l'incrémentent en même temps, ce qui est assez énervant !! :-)

J'ai pourtant mis synchronized.
J'ai aussi essayé avec des semaphores, pas beaucoup plus de succès.
aidez-moi s'il vous plait !!
merci
Répondre à karine

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Kermitt31, le mardi 14 juin 2005 à 14:23:38 Fil de Discussions
Moi je sais pas Proverbe Thaïlandais:Pingouins dans les champs,
hiver très méchant.
Répondre à Kermitt31

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par shaiulud, le mardi 14 juin 2005 à 15:30:29 Fil de Discussions 
avec synchronized la méthode ne peut être appelée qu'une seul fois en même temps.

Mais tu dois avoir plusieurs instantces du même objet.
il faut faire un singleton.

public class Traitement{
// variable d'instance
private static Traitement instance;
//constructeur privé
private Traitement(){}
//récupération de l'instance
public static synchronized Traitement getInstance() {
if (instance == null) {
instance = new Traitement();
}
return instance;
}

public static synchronized traitement() {
System.out.println(tmp);
System.out.println(referer);
System.out.println(ID);
}
}

tu appelles ta méthode en static par
Traitement.traitement()
Répondre à shaiulud
Discussions pertinentes trouvées dans le forum
11/05 09h23[JAVA] synchronisation entre deux fenetreProgrammation11/05 11h203
02/04 23h19Outil de synchronisation de dossiers en JavaProgrammation07/05 12h593
22/12 17h26Probleme de synchronisation javascriptWindows22/12 17h260
20/06 15h35controle javascript pour boutons radiosProgrammation20/06 15h392
Plus de discussions sur « [java] synchronized » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide