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

Entrée/Sortie Java Discussion :

lock de fichier - multiprocess


Sujet :

Entrée/Sortie Java

  1. #1
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut lock de fichier - multiprocess
    Salut,
    J'ai une petite question concernant le lock de fichiers. J'ai besoin de faire du multiprocess car une API utilisé ne supporte pas le multithread.
    Si j'ai bien compris, chaque process instancie un espace de travail mémoire différent donc je ne peux pas utiliser de singleton, mutex etc...
    Si je veux faire du verrou de fichier pour l'utilisation d'une ressource entre chaque process, que me conseillez vous ?

  2. #2
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    créer un fichier .lock (par exemple) dés qu'un process utilise cette resource. Et supprimer le .lock une fois le traitement fait.

    Avant d'acceder à la ressource, il suffit de regarder si le .lock existe.

  3. #3
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    Citation Envoyé par Satch
    créer un fichier .lock (par exemple) dés qu'un process utilise cette resource. Et supprimer le .lock une fois le traitement fait.

    Avant d'acceder à la ressource, il suffit de regarder si le .lock existe.
    ça peut poser des problemes ça !

    j'ai eu a faire un tp dans ce but, ce que j'ai fais, c'etait de creer une classe TP, et dedans j'ai cree une classe interne CL etendant Thread, et comme variable de classe(TP) un Semaphore et la tout le threads pourront tester la disponibilité des droit d'acces aux fichier.

    j'espere que ca t'aiderai.

  4. #4
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    Citation Envoyé par Satch
    créer un fichier .lock (par exemple) dés qu'un process utilise cette resource. Et supprimer le .lock une fois le traitement fait.

    Avant d'acceder à la ressource, il suffit de regarder si le .lock existe.
    ça peut poser des problemes ça !

    j'ai eu a faire un tp dans ce but, ce que j'ai fais, c'etait de creer une classe TP, et dedans j'ai cree une classe interne CL etendant Thread, et comme variable de classe(TP) un Semaphore et la tout le threads pourront tester la disponibilité des droit d'acces aux fichier.

    j'espere que ca t'aiderai.

  5. #5
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Les systèmes de verrou de ce type sont malheureusement impossibles en multi process et c'est bien mon problème. Je ne peux faire de multithread dans ce cas précis.

    Pour la gestion du fichier .lock, c'est effectivement une solution que j'envisage, mais il reste toujours le souci des tests concurrents entre deux process :
    le process A teste la présence du fichier
    le process B teste la présence du fichier
    les deux ne trouvent pas le fichier
    les deux tentent de créer le fichier en même temps et font leur traitement ensuite...

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux utiliser les FileLock, même si le fonctionnement n'est pas forcément le même selon les système.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	FileOutputStream outputStream = new FileOutputStream("test.lock");
    		try {
    			FileChannel channel = outputStream.getChannel();
    			FileLock lock = channel.lock();
    			try {
     
    				// ton code ici ...
     
    			} finally {
     
    				lock.release();
    			}
    		} finally {
    			outputStream.close();
    		}
    a++

Discussions similaires

  1. Déterminer quelle application locke un fichier
    Par Ender75 dans le forum C++/CLI
    Réponses: 2
    Dernier message: 18/08/2014, 11h25
  2. [JSTL] c:import lock le fichier importé
    Par Troudhyl dans le forum Taglibs
    Réponses: 0
    Dernier message: 21/09/2010, 16h02
  3. [WD14] lock de fichier
    Par celeborn56 dans le forum WinDev
    Réponses: 2
    Dernier message: 05/12/2009, 18h57
  4. lock de fichiers en environnement multithreadé
    Par Pi2 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 05/09/2007, 18h10

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