boost :: object_pool est-il synchronisé?boost :: object_pool est-il synchronisé?
Répondre
C++ ne précise rien au sujet de la sécurité des threads, donc si elle ne figure pas il ne risque pas d'un filetage traite. Parfois, Boost fournit des choses qui peuvent être thread-safe hors de la boîte, ce n'est pas l'un d'entre eux.
accès Wrap à la piscine dans un mutex.
ok merci pour la réponse – chila
boost::object_pool
n'est pas synchronisé pour l'accès simultané et libération des objets et de la piscine. mais si vous voulez un pool avec synchronisation, singleton_pool
de boost est celui. Il y a quelques restrictions sur la façon de commencer à utiliser singleton_pool
, mais ils sont assez justes et applicables pour toutes les applications. S'il vous plaît voir ci-dessous des notes de la documentation de démarrage de here et here.
Object Usage vs. Singleton Usage
Object Usage is the method where each Pool is an object that may be created and destroyed. Destroying a Pool implicitly frees all chunks that have been allocated from it.
Singleton Usage is the method where each Pool is an object with static duration; that is, it will not be destroyed until program exit. Pool objects with Singleton Usage may be shared; thus, Singleton Usage implies thread-safety as well. System memory allocated by Pool objects with Singleton Usage may be freed through release_memory or purge_memory.
restrictions usages singleton_pool
Notes
The underlying pool p referenced by the static functions in singleton_pool is actually declared in a way that it is:
Thread-safe if there is only one thread running before main() begins and after main() ends -- all of the static functions of singleton_pool synchronize their access to p.
Guaranteed to be constructed before it is used -- thus, the simple static object in the synopsis above would actually be an incorrect implementation. The actual implementation to guarantee this is considerably more complicated.
Note that a different underlying pool p exists for each different set of template parameters, including implementation-specific ones.
- 1. Comment utiliser boost :: object_pool <> :: construct avec une référence non const comme paramètre ctor?
- 2. Java synchronisé semble ignoré
- 3. retour Synchronisé objectif-c
- 4. Silverlight datagrid défilement synchronisé
- 5. un message synchronisé avec nservicebus
- 6. Synchronisé dans un thread Java
- 7. Minuteur C# synchronisé avec Datetime.Now
- 8. Les tests Intellisense boost :: boost :: boost :: boost :: boost :: boost :: classname ....... pourquoi?
- 9. objectif-c: synchronisé, comment ça marche?
- 10. Java: put() synchronisé avec une liste d'objets
- 11. serveur contrôlé ou diaporama Web synchronisé?
- 12. Limiter le champ qui est synchronisé
- 13. JSON étrange synchronisé dans le code source
- 14. boost :: sérialisation de boost :: unordered_map
- 15. comment boost :: fonction et boost :: bind travail
- 16. Passe boost :: signal comme boost :: function
- 17. Boost: comment construire Boost sous MacOSX
- 18. Problèmes avec boost :: ptr_vector et boost :: tout
- 19. Révéler boost :: scoped_ptr en boost :: python
- 20. Problèmes concernant Boost :: Python et Boost :: Threads
- 21. Boost singletons
- 22. boost threadpool
- 23. Boost Documentation
- 24. Test d'applications avec iPhone synchronisé avec un PC?
- 25. Est-ce que 'synchronisé' est vraiment du sucre syntaxique?
- 26. django.contrib.comments 'non synchronisé' après l'avoir ajouté à installed_apps
- 27. Retour de la méthode à l'intérieur d'un bloc @ synchronisé
- 28. Meilleure approche pour la file d'attente synchronisé de fil
- 29. Bloc synchronisé équivalent à la méthode statique synchronisée?
- 30. Effectuer un défilement synchronisé avec deux vues de défilement
S'il vous plaît expliquer ce que vous entendez par « synchronisée » que ce terme n'a pas de signification particulière en C++ comme il ne en Java, par exemple. –
Je veux dire – chila
thread-safe alors non, ce n'est pas – KeatsPeeks