IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Aide développement multi Thread


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Aide développement multi Thread
    Bonjours
    Problématique :
    Je voudrais développer une application multi thread car je dois travailler sur des très gros fichiers (de 100 Mo à ~100Go), de plus le nombre de fichier sera variable selon les semaines (entre 1 et 12).
    Contrainte :
    Le code dois si possible être fait sous Visual studio mais devra être compatible Linux (avec de adaptation )
    Question :
    Comment créer/déclarer des Thread pour que ca soit compatible Windows et Linux ?API LIB Boost …
    Ou trouver de la documentation sur les fonctions à utiliser pour gérer mes Thread ???Messages,Sections Critiques,Sémaphores

    Exemple : de code pour créer un thread sous windows(pas compatible linux)
    DWORD WINAPI ThreadProcA(LPVOID lpParam);

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    Pourquoi penses-tu que le multithread va t'aider dans ton appli?

    Si tu veux être compatible linux, mieux vaut utiliser boost oui, donc boost::thread.

    La documentation se trouve sur le site de boost
    http://www.boost.org/doc/libs/1_43_0...ml/thread.html

  3. #3
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Je ne sais pas ce que tu vas faire comme traitement sur tes datas mais en général le temps d'accès disque et beaucoup plus lent que le temps de traitement. Donc le mulithread n'a pas d'utilité voir pire si tu traite tes fichiers en parallèle sur un même disque local, le disque dur va devoir bouger la tête de lecture tout le temps et va ralentir le tout.
    Stop au MultiThread = plus rapide !

  4. #4
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Citation Envoyé par themadmax
    Stop au MultiThread = plus rapide !
    Tout à fait ! Surtout que le disque dur, c'est comme la RAM, y'a qu'un seul Bus pour y accéder...
    Tu peux bien avoir 300 threads et 300 coeurs, ça fera pas accélérer ta lecture du disque, y'a un panneau "Un à la fois" à l'entrée !

    Si tu veux vraiment accéder ça en C++, utilise std::filebuf, ça décoiffe, et en monothread !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut re Aide développement multi Thread
    Mon programme devra être un vrai usine a gaz : il faudra traiter des tonnes de data (il y a un gros problème de conception mais je subis)
    Mais je voudrais faire des threads pour la gestion de l’UDP, du RPC, OPC client, OPC
    Serveur…
    Si vous avez des exemples (en français si possible) de comment bloquer, communiquer …entre thread

    merci

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    La programmation multi-thread ajoute une véritable complexité. Il s'agit de problèmes algorithmiques ayant trait à la programmation concurrente. Les techniques de gestion des interblocages et des famines se retrouvent d'un langage à un autre, et boost te donne tout pour mettre en oeuvre ces techniques. Je t'aurais bien filé un lien détaillé, mais j'ai rien trouvé de probant - si quelqu'un d'autre a ça sous la main - , j'avais appris en cours.

    Sinon si tu veux une compatibilité Windows ET Linux, le mieux reste d'utiliser une chaîne de compilation multiplateforme, comme CMake par exemple. Celui-ci peut se coupler avec plusieurs IDE dont Visual Studio. Il y a un coût d'apprentissage de CMake mais après pour la compile multiplateforme ça change la vie !

  7. #7
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    je pense que boost.asio est de meilleur aloi en permettant de chevaucher calcul sur le fichier N pendant la lecture du N+1.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/06/2011, 09h50
  2. Réponses: 0
    Dernier message: 17/06/2011, 13h12
  3. demande d'aide client serveur multi thread
    Par nico1488 dans le forum Réseau
    Réponses: 0
    Dernier message: 19/03/2010, 09h27
  4. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  5. Aide sur Multi-Threading
    Par Fred2209 dans le forum Windows
    Réponses: 7
    Dernier message: 18/04/2007, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo