2010-12-09 68 views

Répondre

2

Non, vous n'avez pas besoin de le verrouiller dans ce cas (en général). Les événements ne seront traités qu'à partir des threads ayant un io_service en cours d'exécution. Si ce n'est qu'un, aucun verrouillage n'est requis. post()'ing nouveaux messages à un io_service est déjà thread-safe à partir de plusieurs threads appelants. Dans votre exemple spécifique, vous pouvez utiliser la valeur par défaut de chat_message au lieu de by-reference, ou bien il peut être hors de portée dans le thread post()'ing avant d'être utilisé dans le thread io_service.

1

Si vous avez besoin d'une sorte de verrouillage à cause de ressources partagées ou autre chose, vous devriez jeter un oeil à strands.