En gros, ici thread-safe veut dire :
Imagine que tu as une classe qui récupère des données sur le réseau. Disons que cette classe est instanciée dans un thread T1. Hop, elle a un message. Elle déclenche alors le signal 
	
	jai_recu_un_message(const std::string&)
 Ce signal est connecté à un "slot" d'un widget de ton interface graphique qui affiche tel quel le message reçu. Disons qu'il s'appelle 
	
	affiche(const std::string&);
 Evidemment, ton interface graphique est instanciée et gérée dans un thread T2 séparé de T1.
Avec boost.signals premier du nom, ce scénario n'était pas possible. Tu ne peux pas connecter un signal de quelque chose qui est dans un thread T1 avec un slot de quelque chose qui est dans un thread T2. Avec boost.signals2, c'est possible car les mécanismes de connexion et de déclenchement gèrent le fait que les différentes choses peuvent se situer dans des threads différents. C'est ça, être thread-safe.
						
					
Partager