C++0x fil interruption

Selon le C++0x projet final, il n'y a pas moyen de demander un fil à la fin. Cela dit, si nécessaire, nous devons mettre en œuvre un do-it-yourself solution.

D'autre part boost::thread fournit un mécanisme pour interrompre un thread dans un sûr manière.

À votre avis, quelle est la meilleure solution? La conception de votre propre coopérative "interruption mécanisme" ou natifs?

  • Intéressant de noter que si vous pouvez tuer un thread, qui pourraient laisser ressources allouées dans la mémoire(depuis le thread a été tué avant que ceux-ci ont été supprimés). Je pense donc que c'est, au moins pour la plupart des cas, une bonne décision.
  • Il y a même des choses pires que des fuites - tels que les transactions incomplètes, une corruption de segment de mémoire ou verrouille toujours détenus.
  • si vous vous souciez de l'exactitude, vous n'avez pas vraiment le choix: ensuite, les threads ne peuvent être interrompus en collaboration, quand ils sont dans prédéfinis "interuptable" états.
  • Tuer un thread est en train de mettre un nœud coulant autour de tous les autres threads' cou. Il suffit de ne pas le faire, sauf si vous êtes un sang-froid le fil killer...
  • double possible de Comment puis-je arrêter un thread en C++11? le Choix de l'autre parce qu'il est un peu plus général.