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

Threads & Processus C++ Discussion :

multithreader un programme monothread


Sujet :

Threads & Processus C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Par d�faut multithreader un programme monothread
    Bonjour,

    Voici ma probl�matique :

    J'ai un code monothread qui ecrit des fichiers. Jusqu'ici tout va bien.

    Or, j'ai besoin de pouvoir appeler cet exe plusieurs fois en meme temps...
    Du coup, sachant qu'il est fort probable que ma sortie soit la m�me dans certains cas, comment pourrais je assurer qu'ils �crivent bien un par un dans le meme fichier et que les autres attendent patiemment?

    Merci

    Vincent

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Modifier les fonctions d'�criture du soft pour qu'il verrouille le fichier avant �criture et qu'il d�verrouille le fichier apr�s l'�criture.
    Les fonctionnalit�s lock/unlock existe dans quasiment tous les syst�mes de fichiers modernes, il faut donc utiliser des librairies d'acc�s aux fichiers g�rant cette fonctionnalit�.
    Il faut aussi g�rer l'�chec de lock, mais la librairie d'acc�s peut g�rer cela de mani�res transparentes.

    Je pense que des biblioth�ques d'�criture "atomique" doivent �tre facilement trouvables dans votre contexte d'ex�cution. (Comme les librairies de log qui le font toutes).

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Par d�faut
    Bonjour,
    Merci pour ta r�ponse

    Je ne suis pas s�r de bien comprendre ta r�ponse ou de bien avoir exprim� mon souci.

    Mon programme P fait (en gros)
    - tester l'existence d'un fichier de lock.
    --> s'il existe, il s'endort un peu et retestera
    --> s'il n'existe pas, il le cr�e et bosse sur un vrai fichier correspondant au lock. Ensuite, il supprime le fichier de lock et les autres comprennent qu'ils peuvent bosser sur le fichier correspondant au lock

    Or, mon test de fichier n'est pas atomique car j'ai l'impression que cela ne servirai pas vu que P est monothread.
    Mais vu qu'une 20aine de P tourne en m�me temps, j'ai observ� que le test d'existence du fichier de lock est, de temps en temps, vrai pour plusieurs P et qu'ils bossent tous en m�me temps sur une m�me sortie, ce qui n'est pas le but.

    Le hic est donc l'entr�e simultan�e. Si j'ai qu'un P qui valide le test, le fichier est lock� et je suis tranquille.

    Merci

    Vincent

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Heu, je n'est JAMAIS parl� d'un fichier "lock" qui errerait dans le syst�me de fichier.
    J'ai parl� de verrouillage de fichier.
    Exemple sous Win32, voir les options dans les valeurs pour le 3�me param�tre de la fonction suivante :
    https://msdn.microsoft.com/fr-fr/lib...=vs.85%29.aspx

    De m�moire, il existe le m�me type de possibilit� de verrouillage en POSIX, voir m�me un verrouillage par plage dans les offsets du fichier.


    Mais toutes les biblioth�ques de Log font cela de mani�re transparente et portable.

Discussions similaires

  1. Programmation multithread pour d�butant
    Par oodini dans le forum C++
    R�ponses: 5
    Dernier message: 07/03/2008, 14h14
  2. programmation multithread en C++
    Par deadalnix dans le forum C++
    R�ponses: 40
    Dernier message: 23/08/2007, 17h13
  3. temps d'execution d'un programme multithread
    Par La taupe dans le forum C
    R�ponses: 2
    Dernier message: 10/01/2007, 17h44
  4. Programmation multithreads ?
    Par rulianf dans le forum C++
    R�ponses: 2
    Dernier message: 03/02/2006, 20h17
  5. programmation d'API windows et multithreading
    Par Mastero dans le forum Windows
    R�ponses: 8
    Dernier message: 07/03/2005, 23h00

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