probleme de synchronisation threads
bonjour, je bosse sur des problemes de synchro threads, et je ne suis pas du tout satisfait de mon programme en particulier un morceau qui doit paralleliser un traitement a la base sequentiel:
je traite un flux sequentiellement, mais pour aller plus vite sur proc multicoeur, je veux morceller le flux, ainsi chaque morceau est traité dans son thread... mais doit etre reassemble dans le bon ordre une fois traite...
j'ai donc un thread A qui morcelle le flux et distribue les morceaux a n threads B (des petits Bn :mouarf:) et enfin un thread C qui doit prendre les morceaux dans le bon ordre et faire un traitement de réassemblage...
voilà le probleme...
cote solution, j'ai exploré le mode par salve : A prépare n paquets, B traite n paquets et C attend que les Bn ait fini pour réassembler... mais c'est pas satisfaisant car la phase C est traitée sur un seul thread (et la phase A n'est pas au top non plus), or il me semble qu'il est possible de la multithreader avec les autres, en effet:
dès que C a assemblé le paquet B1, B1 est libre pour traiter un nouveau paquet et n'a pas a attendre que C ait terminé de traiter tous les Bn... et là c'est le drame de synchroniser tout ça, pour moi en tout cas, j'arrive pas a avoir un bazard parfaitement etanche...
le pompom : si c possible de pas tuer les threads entre chaque paquet, c'est vraiment mieux...
en tout cas, j'espere ne pas faire trop de charabia, et etre au bon endroit du forum...
merci de votre aide, je vous promet une bonne prise de tete :aie:
j oubliais, je programme en c sur windows...