Thread en C++

Résolu/Fermé
ben - 18 avril 2003 à 10:48
 Anni - 1 nov. 2013 à 14:13
bonjour à tous
voila, je debute en C++ et j'aimerais savoir comment on fait des thread. La total koi, demarrage, arret , coeur du prog...

merci à tous

ben

7 réponses

olivier.s Messages postés 49 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 28 mars 2015 15
18 avril 2003 à 14:21
Salut Ben

Si t'es sous windows va voir ca :
http://www.alrj.org/docs/systeme/win32thread.pdf

Si tu veux faire du code portable cherche ACE sur le net, c'est une librairie qui enveloppe les appels systemes, y a des classes pour les threads. Par contre elle est un peu encombrante si je me souviens bien.
8
Billgates95 Messages postés 43 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 29 décembre 2010 24
30 avril 2010 à 15:45
Slt nina le thread est tt simplement l'evolution d un processus fork();
il est plus léger donc plus rapide.Le langage C++ reste le même que ce soit sur borland ou sur n'importe quel autre compilo.

pour creer un thread tu dois utiliser la commande pthread_create()
Apres tu doit lui donner un attribut par avec le mot attr*
ensuite tu lui fait faire ce que tu veux avec le code d'instruction traditionnelle en genral on l'utilise pour creer un enssemble de processus tres rapide il sert beaucoup dans la programmation systeme on peut le rencontrer dans la programmation reseau. Si tu veux faire un systeme a temp reel par exemple utilise le thread. (la definition precise du therme thread est lien de connection) apres a toi de jouer
7
Billgates95 Messages postés 43 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 29 décembre 2010 24
7 avril 2010 à 21:54
slt mec cherche sur google tu as des cours detailler
4
bonne reponse !!
0
cool de chercher sur google pour tomber sur ce genre de résultats qui t'envoient chercher sur google.
0
Billgates954
16 janv. 2012 à 13:47
Faut savoir utiliser google c'est tout
0
J'avoue je suis allé sur google et je suis tombé la dessus, je suis super aidé, merci bill !
0
while(true){}
0
ok merci je venait de le trouvé moi aussi,
c bon mes thread marche bien

ben
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Billgates95 Messages postés 43 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 29 décembre 2010 24
10 avril 2010 à 11:52
salut tous le monde !Il faut savoir que le C++ est un langage structurale et pas totalement procedural.
Pour le thread tu as la bibliotheque #include <pthread.h> a faire apres tout dépend de ce que tu veut en faire. Si tu veux developper des aplis web je te conseil c# (Csharp).(les pthreads fonctionnent sur touts les types de langage).
Apres pour le C sharp google sera ton meileur ami lol
1
Billgates95 Messages postés 43 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 29 décembre 2010 24
29 déc. 2010 à 14:03
Pour continuer ce vieux sujet xD ; les threads sont comme je le disait des liens
inter processus qu'on utilise dans les processeur et dans les nouveaux systèmes
d'exploitation afin de pouvoir augmenter leurs performances . On peut mettre un résolu sur le sujet
1
salut a tout
j ai pas compris qu est ce que le tread et cooment lui appliquer en langage c++ builder
comment faire tout ça
merci d'avance
-2
Si tu veux poser une question, rien ne t'empêche de le faire, bien au contraire... mais ce n'est pas bien de venir te greffer sur une question posée par quelqu'un d'autre, surtout sur une aussi vieille question.
0
Merci bine mon
0
vous pouvez m aidé pr mmon pgm il sexecute mais n affiche rien
voila le code
#include<stdio.h>

#include<math.h>

#include<stdlib.h>

#include<pthread.h>
#include <errno.h>


int fils1[6];

int fils2[6];

int tab[12];
int droit;
int gauche;
int t[10];



void tri( int t[], int gauche, int droit )



{

int i,j ;int pivot,x ;





i=gauche; j=droit; pivot =t[(i+j)/2] ;


do
{

do



{ i=i+1 ;

}
while (t[i] < pivot);





do

{ j=j-1 ;

}
while (t[j] > pivot);



if ( i<=j )

{

x=t[i];

t[i]=t[j];

t[j]=x;

i=i+1 ;

j=j-1 ;



}
}
while (i>j);


if (gauche<j)

{

tri(t,gauche,j) ;



}



if (i<droit)

{

tri(t,i,droit) ;

}

}



genererNombre(int t[]){//10 nbres aleatoires

int i;

for (i=0;i<11;i++){

t[i]=rand()%50;

//printf("num %d = %d\n",i,t[i]);

}

}



void affect_1()

{

int fils1[5];



int i,m=6;



for (i=0;i<m;i++){



fils1[i]=tab[i];

}

}



void affect_2()

{

int fils2 [6];

int i,p=11;

for (i=6;i<p;i++){

fils2[i]=tab[i];





}

}



main(int tab[])
{

pthread_t f1;
pthread_t f2;


genererNombre(tab);



int k,l ;int pivott,x ;

int p,y,i,j,h,g;
gauche=0;
droit=11;



k=gauche; l=droit; pivott =tab[(i+j)/2] ;


do

{

do
{

k=k+1 ;
}

while (tab[k] < pivott);



do

{

l=l-1 ;

}
while (tab[j] > pivott);




if ( k<=l){

x=t[k];

t[k]=t[l];

t[l]=x;

k=k+1 ;

l=l-1 ;



}



}


while (i<j);


if ( pthread_create(&f1,NULL,(void*(*)())affect_1,NULL)==-1)

perror("pb thread_create\n\n");



if (pthread_create(&f2,NULL,(void*(*)())affect_2,NULL)==-1)

perror("pb thread_create\n\n");


tri(fils1,0,j);



tri(fils2,i,11);



pthread_join(f1,NULL);



pthread_join(f2,NULL);



int v;



for (v=0;v<11;v++){

y=tab[v];

printf("l'element a la position",v,tab[v]);

}



}
0
Je ne veux pas être désagréable mais il y a des limites à tout...
Tu codes avec tes pieds Nina ?
Pas besoin de sauter autant de lignes, commence par indenter ton code pour qu'il soit acceptable et ensuite on pourra ne serait-ce que jeter un coup d'oeil dessus pour t'aider.

Agréablement Anni.
0