begin process at 2012 05 30 02:58:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

C(Linux)thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

C(Linux)thread

dimanche 7 octobre 2007 à 03:10:04 | C(Linux)thread

noussa1985

st tt le monde
SVP eske qqu'1 pe m'aider à ecrire un code en C(Linux) en utilisant les threads
Mon pgm permet de calculer le carré des entiers entre 0 et 90 et de mettre chaque val retournée dans un thread séparé,puis retourner un tableau de double contenant les résultats.le main thread doit afficher un court message à l'user et afficher les resultats  calculés qd ils seront prets.
voici le code que j'arrive à faire  et je suis sur qu'il contient +ieurs erreurs:

#include<pthread.h>

Void *Carre(void *arg)

{

       int i,a ;

       i=a*a;
      return i;  //est ce que c juste,car  c void et j doit retourner le carré??? 

}

int main(void)

{
    int i;
  
pthread_t thread_Id[100];
   void *exit_status;

   double *tab=(*double)malloc(100);

            for(i=0;i<100;i++)

              {
                       pthread_create(&thread_Id[i],NULL, Carre,&i);
                      pthread_join(thread_Id[i], &exit_status);       //franchment je sais pas c koi l'utilité de pthread_join ni de exit_status                      tab[i]=exit_status;  //c juste???

                   printf("le thread  %d a comme valeur %d",i,tab[i]);
               
}

            return 0;
 }

 J'esper ke qqu'1 pe me corriger ce code avant 2min soir si c possible biensur car il va etre noté.

Si  qqu'1 un nom de site de C(Linus) avec les threads il me donne.

Bn et merci d'avance pour votre aide.

dimanche 7 octobre 2007 à 18:48:54 | Re : C(Linux)thread

luhtor

Par définition la documentation d'une librairie explique son fonctionnement...
http://www.opengroup.org/onlinepubs/007908799/xsh/pthread.h.html
vendredi 12 octobre 2007 à 14:14:23 | Re : C(Linux)thread

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

3ème commandement de CodeS-Source : Le langage SMS tu n'utiliseras pas. Bon, après il parle d'orthographe, mais j'ai jamais compris ce que ça voulait dire...

Le pire de ce que tu as écrit se situe au niveau de ta fonction Carre. Tu fait i = a * a, alors que tu as jamais initialisé a. Le reste est pas trop moche et pas mal trouvé.

Voilà une solution qui compile et fonctionne, mais je ne suis pas sûr qu'il respecte ton énoncé que j'ai pas trop compris. En même temps c'est un peu tard pour toi il me semble.
#include "pthread.h"
#include "stdio.h"

// Attention, le nombre maximum de threads par processus peut
// être très bas, parfois 10.
#define NUM_THREAD 15

void * Carre(void * arg);

int main(int argc, char ** argv)
{
pthread_t thread_Id[NUM_THREAD]; // Stockage des IDs des threads
int exit_status; // Récupération de la réponse des threads
int error; // Récupération des codes d'erreur
double tab[NUM_THREAD]; // Stockage des résultats
int i;

// Lancement des threads
for( i = 0 ; i < NUM_THREAD ; i++)
{
error = pthread_create(&thread_Id[i], NULL, Carre, (void *)i);

// Vérification que la création s'est bien passée
if (error)
{
printf("Failed to create thread %d, error %d\n", i, error);
thread_Id[i] = 0;
}
}

// Attente de la fin des threads et récupération des calculs
for (i = 0 ; i < NUM_THREAD ; i++)
if (thread_Id[i])
{
error = pthread_join(thread_Id[i], (void **)&exit_status);
if (error)
{
printf("Failed to join thread %d, error %d\n", i, error);
tab[i] = -1;
}
else
tab[i] = (double)exit_status;
}
else
tab[i] = -1;

// Affichage des résultats
for (i = 0 ; i < NUM_THREAD ; i++)
printf("%f\n", tab[i]);

return 0;
}

void * Carre(void * arg)
{
pthread_exit((void *)(int)((int)arg * (int)arg));
}


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08


Cette discussion est classée dans : void, thread, exit, status, pthread


Répondre à ce message

Sujets en rapport avec ce message

Probleme thread linux ... [ par Tidam ] Voila mon probleme, quand je ve compiler il me sort une erreur : passing `void (*)(void *)' as argument 3 of `pthread_create(pthread_t *, const pthrea Sdl_net + pthread probleme d'argument [ par Defaite ] Bonjour à tous.Voila mon problème, j'ai une thread ( en Pthread ) qui devrait s'occuper d'un socket.Seulement voila, impossible de dire à ma thread co pthread_exit( ) et pthread( ) join [ par razuki ] Bonjour, j'aimerais savoir comment doit - on procéder pour récuperer par l'intérmédiaire de pthread_join(thread, val_ret) une valeur de retour envoyé Envoi de parametre dans un thread en C++ [ par xinob ] Bonjour a tous,Je me permets de poster un message car je n'ai pas trouver de réponse que j'ai comprise sur le net .En effet , j ai quelques questions faire des Multi-threads ? [ par Adict ] Bonjours j'aurais besoin d'aide car je ne comprend pas vraiment comment faire des multi thread.. un ok mais plusieurs [^^mad5] pour faire un thread n Débutant C : Problème pour récupérer une valeur dans un thread [ par eustatika ] Bonjour, [^^clinoeil1] Je débute en C et suis actuellement bloqué lorsqu'il s'agit de renvoyer une valeur à la fin de l'exécution d'un thread. Voici m thread et activeX avec MFC [ par lamalice83 ] bonjour,j'essaye de créer un thread à l'intérieur d'une classe, mais je n'arrive pas à l'associer avec sa fonction de routine:Dans le CLASSCtl.h :afx_ comment créer un thread sous vc++, ou est définie pthread.h [ par saerlo ] GORDON threads et semaphores [ par liliefr2000 ] bonjour J'ai un probleme,je souhaite a l'aide de deux threads calculer la somme des entiers contenu dans un tableau..pour cela le premier thread va co Linux C++ Thread [ par mikoo74 ] Salut All !voila j'aimerais me renseigner un peu sur les Thread...Je dois developper un prog qui recupere des message sur un port et qui les traite.se


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,008 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales