Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1233 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  petite question toute bête en java (synchronisation)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petite question toute bête en java (synchronisation)

n°1367061
Zipo
Ours bipolaire
Posté le 16-05-2006 à 01:42:57  profilanswer
 

salut à tous, je viens de voir une petite question d'examen, et j'avoue ne pas comprendre la subtilité (si elle existe)
 
Voilà :
 

Code :
  1. public int sumArrays[int[] a1, int[] a2)
  2. {
  3.   int value = 0;
  4.   int size = a1.length
  5.   if(size == a2.length)
  6.   {
  7.      synchronized(a1){
  8.        synchronized(a2){
  9.          for(int i=0; i<size; i++)
  10.            value += a1[i] + a2[i];
  11.        }
  12.      }
  13.   }
  14.   return value;
  15. }


 
la question est en gros d'expliquer pourquoi il peut y avoir un interblocage, ors je vois pas du tout pourquoi il y en aurait un :??: le corps du synchronized(a2) n'est pas bloquant, donc je comprend pas trop là ...
 
vous avez une idée ?
 
merci :jap:


---------------
- mon feed-back
mood
Publicité
Posté le 16-05-2006 à 01:42:57  profilanswer
 

n°1367063
Zipo
Ours bipolaire
Posté le 16-05-2006 à 01:53:52  profilanswer
 

euuh en y regardant de plus près, c'est peut être que comme on fait l'affectation à size avant les synchro ... si on modifie la taille des tableaux dans un autre thread, ça peut éventuellement mal boucler dans le for ?
mais bon ça me parait tiré par les cheveux


---------------
- mon feed-back
n°1367193
moi23372
Posté le 16-05-2006 à 10:03:52  profilanswer
 

ben oui c'est cela. La longueur peut avoir changé quand tu seras débloqué par le synchronized. Ce qui peut provoquer des problèmes.  
 
La solution serait donc de mettre la méthode Synchronized. Afin que l'objet soit automatiquement verrouillé si on y accède.  
 
Mais bon j'avoue que l'exemple à une drole de synthaxe.

n°1367219
kadreg
profil: Utilisateur
Posté le 16-05-2006 à 10:32:21  profilanswer
 


moi23372 a écrit :


La solution serait donc de mettre la méthode Synchronized. Afin que l'objet soit automatiquement verrouillé si on y accède.


 
 
bah non, puisque dans ce cas, c'est this qui va être locké, et pas les paramètres qui peuvent être accessibles par ailleurs depuis un autre thread.  
 

moi23372 a écrit :


Mais bon j'avoue que l'exemple à une drole de synthaxe.


 
c'est du java :p


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1367232
Taz
bisounours-codeur
Posté le 16-05-2006 à 10:43:49  profilanswer
 

il y a interblocage si en concurrence il y a :
 
sumArrays(a, b) et sumArrays(b, a)
 
et la taille d'un tableau est fixe les gars ...

n°1367486
Zipo
Ours bipolaire
Posté le 16-05-2006 à 13:57:37  profilanswer
 

Taz a écrit :

il y a interblocage si en concurrence il y a :
 
sumArrays(a, b) et sumArrays(b, a)
 
et la taille d'un tableau est fixe les gars ...


aaaaaaah ouééééééé bieeeen :jap: :d
merci !!


---------------
- mon feed-back

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  petite question toute bête en java (synchronisation)

 

Sujets relatifs
[Résolu] [JAVA - RMI] Unsupported major.minor version 49.0[JAVA] Pb de connexion DB Oracle à partir d'une applet [Résolu]
Forum en java[Java/JdbcObbc] Comment lire une database texte sous linux ?
Question basique sur les liens ! [résolu][Java et XML] Traitement d'un fichier XML avec JAVA
Question simple : Comme faire apparaître / disparaître un calque.Programmez vous principalement en C++ ou Java ?
[Java] Cherche script de chat gratuitéxécution de html dans un script java
Plus de sujets relatifs à : petite question toute bête en java (synchronisation)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR