questions sur les mutex, les singletons, boost etc.
Bonjour.
Je me retrouve face à un problème de conception...
J'aimerais développer une classe servant à écrire des données dans un fichier (RAII)
Seulement cette classe peut être accédée par plusieurs threads et je voudrais éviter que plus d'un thread à la fois modifie le fichier.
L'idée que j'avais était de créer une fifo, et de faire en sorte que les threads poussent des données dans la fifo, tandis qu'un autre thread la dépilerait toutes les T périodes et écrirait les données dans le fichier.
L'idée vous paraît-elle viable? Que feriez vous sinon?
Pour ce qui est d'accéder à la fifo, il paraît évident qu'il ne faut pas que tous les threads y accèdent en même temps. Je pensais donc avoir recours à des mutex. J'ai commencé à regarder ceux de boost, mais j'avoue être un peu perdu dans la documentation (en gros, peu de cas pratiques, mais beaucoup de théorie...). Encore une fois, est-ce une bonne idée?
A priori, ma fifo doit être statique pour être accédée de n'importe où non? Est-il préférable de la gérer dans une classe (singleton) ? Est-ce compatible (thread safe) avec ce que je veux faire plus haut?
Bref, je ne sais pas si je suis très clair dans mes explications mais n'hésitez pas à me poser des questions!
Merci d'avance! :)