Un module est thread-safe, si elle garantit de pouvoir conserver ses invariants dans le visage de multi-thread et agrément d'utilisation.
Ici, un module peut être une structure de données, de classe, d'objet, de méthode ou de procédure ou une fonction. Fondamentalement, l'étendue morceau de code et de données connexes.
La garantie peut éventuellement être limitée à certains environnements spécifiques de l'architecture du PROCESSEUR, mais il doit détenir pour les environnements. Si il n'est pas explicite à la délimitation des milieux, alors qu'il est généralement pris à penser qu'il vaut pour tous les environnements que le code peut être compilé et exécuté.
Fil-dangereux modules peuvent fonctionner correctement sous multi-thread et l'utilisation simultanée, mais c'est souvent plus bas à la chance et le hasard, qu'une conception soignée. Même si certains module n'a pas de pause pour vous, il peut se briser lors d'un déplacement à d'autres environnements.
Le Multi-threading, des bugs sont souvent difficiles à déboguer. Certaines d'entre elles ne produisent de temps en temps, tandis que d'autres manifestent de façon agressive - ce trop, peut-être spécifiques à un environnement. Ils peuvent se manifester comme subtilement de mauvais résultats, ou de blocages. Ils peuvent gâcher des données-structures de manière imprévisible, et causer d'autres apparemment impossible de bugs apparaissent dans d'autres régions éloignées du code. Il peut être très spécifiques à l'application, de sorte qu'il est difficile de donner une description générale.