Thread et Structures [Résolu]

- - 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 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 novembre 2018
3
Merci
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

Merci cptpingu 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cptpingu
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 novembre 2018
0
Merci
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
0
Merci
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
0
Merci
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.