[Sérialisation] Pas de logique dans un programme de test de la sérialisation
bonjour
j'ai créé un programme pour persister des objets, en utilisant les classes FileOutputStream et ObjectOutputStream.writeObject, l'objet paramétré est :
HashMap(String,Object)
où l'objet est un int.
puis de manière concurrente je lis ce fichier en faisant un cast.
ces 2 opérations (écriture et lecture) se font dans 2 threads, avec un boucle pour l'écriture :
Code:
1 2 3 4
|
for(int i=0;i<5000;i++){
écrit(i);
} |
et la lecture est :
Code:
1 2 3 4
| while (true){
int n=lit (n);
System.out.println (n);
} |
la lecture peut échouer (au moment où le fichier est ouvert en écriture); alors il y a une pause de la lecture (Thread.sleep(1000));
le résultat est bien l'apparition d'erreurs et ça remarche après une pause, mais les nombres affichés ne sont pas strictement croissants....
comment cela se fait-il?
je suis désolé, je n'ai pas le code présentement, je vous le fournis dès que possible.
olivier