Bonsoir tout le monde!
Excusez-moi d’entrée pour ce « pavé », mais après des heures de luttes et recherches acharnées, je me résigne à vous faire part de mon problème… En espérant qu’une âme charitable m’aide !
Voilà mon problème :
Imaginons que je dispose d’une classe qu’on appellera « Controleur ». Celle-ci se charge de créer un grand tableau dont chaque ligne serait composée de paramètres (des nombres). Chaque ligne étant bien sûr différente et INDEPENDANTE. Mon objectif est d’envoyer ce tableau à une autre classe, qu’on appellera « Analyse », pour que cette dernière, après avoir effectué une série de calculs, complète mon tableau (grâce à une colonne prévue à cet effet !). Ensuite, évidemment, je récupère mon tableau complété dans ma classe « Controleur ». Tout va bien !
Soit, imaginons maintenant qu’au lieu de faire un seul appel à ma classe « Analyse », je crée désormais plusieurs threads, en leur spécifiant à chacun les numéros de lignes qu’ils devront traiter. Le but étant bien sûr d’accélérer le traitement de mon tableau (pas folle la guêpe !). Par exemple, pour un tableau de 300 lignes, avec 3 threads, le premier s’occupera des lignes 1 à 100, le second s’occupera des lignes 101 à 200 et le dernier s’occupera des lignes 201 à 300.
Et là … c’est le drame ! Mes threads font un gros « méli-mélo » des variables, comme si elles étaient toutes « statiques ». Résultat, mon tableau est entièrement rempli aléatoirement en sortie !! Pourtant AUCUNE variable n’est déclarée en « statique » dans mes deux classes. Et pour créer mes threads, je crée bien à chaque fois une nouvelle instance de ma classe « Analyse » qui est censé recevoir sa propre copie du tableau original.
Je ne comprends pas !! H.E.L.P. !! Est-ce que quelqu’un, sans que je mette le code pour l’instant (encore plus pavé sinon !), aurait une petite intuition ?
Edit : Où sinon si quelqu'un connait LA bonne méthode pour exécuter, une même classe, dans plusieurs threads, le tout en même temps et en empêchant tout échanges! Merciiiii!
Un grand MERCI par avance !
K.ROLE42
Partager