Thread et Structures [Résolu]

artorius51 - 27 avril 2013 à 12:10 - Dernière réponse :  artorius51
- 27 avril 2013 à 14:42
Bonjour
Je viens de commencer la notion des threads/processus sous Linux j'ai plusieurs soucis concernant ces 2 notions , j'ai trouver un exercice qui est très intéressant mais un peu difficile pour mon niveau
Voici donc l'énoncé
***************************************
Créer une structure TypeTableau qui contient :
- un tableau d'entiers
- le nombre d’éléments du tableau
- un entier x
*** Écrire un programme qui crée un thread qui initialise un TypeTableau avec des valeurs aléatoires entre 0 et 99 . le nombre d'éléments du tableau est passé en paramètre . Dans le même temps , le thread principal lit un entiers x au clavier . A la fin du remplissage du tableau , le programme crée un thread qui renvoie 1 si l'élément x est dans le tableau , 0 sinon .
***************************************
J'aimerais bien avoir la solution ou bien des éclaircissements sur cet exercice
Merci !
Afficher la suite 

4 réponses

Répondre au sujet
cptpingu 3784 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 18 avril 2018 Dernière intervention - 27 avril 2013 à 14:16
+3
Utile
Je ne peux pas vraiment t'aider, tu n'as pas un problème précis, mais un problème de connaissance. Tout ce que tu as faire, c'est d'apprendre à utiliser des threads. Pour cela, recherche des cours ou des tutoriaux sur le net.
Pour toutes questions précises, j'y répondrais, mais je ne peux pas faire plus.

(la ce que j'ai compris il faut passer le nombre d'elements dans la fonction pthread_create mais c'est de type int alors que le parametre est de type void*)

Voici la signature de pthread_create:
int pthread_create(pthread_t* thread, pthread_attr_t* attr, void* (*start_routine)(void*), void* arg);

Tu passes les arguments dans "arg", qui est un "void*" (qui accepte tous les types). Si tu n'es ni à l'aise avec les pointeurs, ni à l'aise avec les "void*", ça va être très difficile. Je t'invite vraiment à réviser tes cours sur les pointeurs avant de t'attaquer au thread (impossible de comprendre correctement les threads, si tu ne maîtrises pas parfaitement les pointeurs).

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cptpingu
cptpingu 3784 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 18 avril 2018 Dernière intervention - 27 avril 2013 à 12:44
0
Utile
Bonjour.

Quel est ton souci ? Je ne comprends pas où tu bloques, peux-tu être plus précis ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
artorius51 - 27 avril 2013 à 13:41
0
Utile
Pour le moment j'ai pas compris comment un thread fonctionne normalement(je suis entrain de lire quelques tuto pour ça mais c'est pas vraiment top ), et pour cet exercice : comment je fais pour passer le nombre d'elements du tableau dans les parametres (la ce que j'ai compris il faut passer le nombre d'elements dans la fonction pthread_create mais c'est de type int alors que le parametre est de type void*)
Commenter la réponse de artorius51
artorius51 - 27 avril 2013 à 14:42
0
Utile
Je viens de trouver un cours très sympa sur les threads



int pthread_create(pthread_t* thread, pthread_attr_t* attr, void* (*start_routine)(void*), void* arg);


Tu passes les arguments dans "arg", qui est un "void*" (qui accepte tous les types).


En fait j'avais mal compris le type *void , ça va tout changer maintenant , et pour les pointeurs j'en ai aucun souci , donc une petite révision sur les threads et le tour est jouer (enfin j’espère )
Merci pour votre réponse
Commenter la réponse de artorius51

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.