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 .
1 2 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