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 :
et la lecture est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for(int i=0;i<5000;i++){ écrit(i); }
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));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while (true){ int n=lit (n); System.out.println (n); }
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
Partager