Thread et Structures

Résolu
artorius51 - 27 avril 2013 à 12:10
 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 !

4 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
27 avril 2013 à 14:16
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
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
27 avril 2013 à 12:44
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
0
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*)
0
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
0
Rejoignez-nous