2010-12-09 5 views

Antwort

2

Nein, Sie müssen es in diesem Fall (im Allgemeinen) nicht sperren. Die Ereignisse werden nur von Threads behandelt, die einen io_service ausführen. Wenn das nur einer ist, ist keine Verriegelung erforderlich. post() 'neue Nachrichten an einen io_service zu senden ist bereits Thread-sicher von mehreren aufrufenden Threads. In Ihrem speziellen Beispiel möchten Sie möglicherweise den Wert chat_message by-value anstelle von by-reference verwenden oder den Bereich im post() - Thread verlassen, bevor er im io_service-Thread verwendet wird.

1

Wenn Sie aufgrund von freigegebenen Ressourcen eine Art Sperrung benötigen, sollten Sie sich die Datei strands ansehen.