Comment verrouiller le répertoire traité dans un thread? et L'attente d'écrire un nouvel ensemble de fichiers dans le répertoire après que le dossier est publié par le thread qui a commencé à traiter le dossier?Verrouiller le répertoire et faire en sorte que le reste du code attende que le répertoire soit libéré par le thread
Répondre
En supposant que Windows (bien que la même chose s'applique probablement sur d'autres systèmes d'exploitation): il n'y a pas un excellent moyen de le faire en utilisant les attributs du système de fichiers Windows. Au lieu de cela, j'utilise normalement des fichiers vides avec des noms spécifiques pour y parvenir.
Par exemple, créez un fichier appelé: folder.lock. Si ce fichier est présent, vos autres threads doivent traiter le dossier comme verrouillé. Ils peuvent implémenter un observateur de système de fichiers à surveiller lorsque ce fichier est supprimé et obtenir cela pour invoquer l'action suivante pour quand le dossier est libéré.
Si vous avez plusieurs threads potentiellement verrouillés, vous pouvez inclure un identificateur de thread dans le fichier ou le nom de fichier et demander à vos threads de vérifier le verrou spécifiquement pour leur propre identifiant.
Plateforme, langue? –