La thread safety d'un code (qu'on appelle alors « code thread-safe ») est la propriété de celui-ci associée au fait qu'il est capable de fonctionner correctement lorsqu'il est exécuté simultanément au sein du même espace d'adressage par plusieurs threads.

Si cette propriété d’un code n’est pas importante dans le cadre d’une exécution mono-thread (où le code n'est exécuté qu'une seule fois à un instant donné), elle en devient essentielle dans le cadre de la programmation concurrente multi-thread (où l'exécution simultanée du code est recherchée pour améliorer les performances du programme).

Pour permettre l'utilisation dans le cadre de la programmation concurrente d'un code qui n'est pas intrinsèquement thread-safe, on peut le protéger par des structures d'exclusion mutuelle pour garantir sa thread safety d'un point de vue extérieur, ou recourir à une séparation des espaces d'adressage.

L'exécution simultanée de code qui n'est pas thread-safe peut conduire à des bugs réputés difficiles à résoudre, appelés race conditions.

Voir aussi modifier