bonjour,
avant de poser ma question,je tiens à faire une petite description de mon code.
je dispose d'une fonction qui me génere  des elements,je passe ces elements à  une fonction qui monte une socket et appele deux thread une pour récuperer les réponses du serveur,l'autre pour l'envoi des élements générés),jusqu'ici tout est bon,ce traitement(Séquentiel:1envoi à la fois) demeure lent,je désire le rendre rapide(dans cet exemple 2 envois à la fois) et du coup j'ai transformé la fonction qui monte la socket à son tour à une Thread,comme ça la fonction de génération peut génerer un lot d'elements  et appeler plusieurs thread de montage de sockets qui à leur tour appelent les threads d'envoi et de reception  sur chaque socket .
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 
 |  
void generer(char* element1,char* element2,int i,int j)
{
 
HANDLE myhandle_send_it_via_socket_lot1;
HANDLE myhandle_send_it_via_socket_lot2,
 
 struct thread_params_send send_params;
 
 
element1=.....;//traitement des element1
element2=.....;//traitement des element2
 
 
while(condition)//tant kil y'a des elements à envoyer
      {
        cout <<"affichage";
        cout <<"affcihage";
 
       send_params.element1=element1;
       send_params.element2=element2;
 
myhandle_send_it_via_socket_lot1 = (HANDLE)_beginthreadex(0, 0, &Send_it_via_socket, (void*)&send_params, 0, 0);
 
 
element1=x;//transformation des elements generés
element2=y;//transformation des elementsgenéres
 
send_params.element1=element1;
send_params.element2=element2;
 
myhandle_send_it_via_socket_lot2 = (HANDLE)_beginthreadex(0, 0, &Send_it_via_socket, (void*)&send_params, 0, 0);
 
WaitForSingleObject( myhandle_send_it_via_socket_lot1, INFINITE );
WaitForSingleObject( myhandle_send_it_via_socket_lo2, INFINITE );
 
 
       }
 
 
 
} | 
 donc je me trouve avec:
générer()->thread send_it_via_socket_lot1->thread envoi socket
générer()->thread send_it_via_socket_lot1->thread réception socket
génerer()->thread_send_it_via_socket_lot2->thread envoi socket
générer()->thread send_it_via_socket_lot2->thread réception socket
question:
a-les thread d'envoie et de reception socket affichent des résultant,donc j'ai un affichage en désordre et désagréable 

Comment améliorer cet affichage?
b-lorsque je transforme:
element1=x;//transformation des elements generés
element2=y;//transformation des elementsgenéres
on dirait que c'est la première  thread avec le handle myhandle_send_it_via_socket_lot1 qui prend les valeurs changés malgré que je l'ai appelé avec les anciens valeur du parametre (void*)&send_params
donc je me trouve obligé de mettre un waitforobjects avant la transformation des parametres,si j'attend thread send_it_via_socket_lot1 qu'elle termine ça veut dire que j'ai rien gagné.je me retrouve dans le régime séquentiel...

(((((
des suggestion sont la bienvenue.
Partager