-
reentrant et thread-safe
Bonjour,
Est - ce que quelqu'un connait un doc officiel qui explique clairement la notion de reentrance et thread-safe.
Sur le net, les gens disent tout et n'importe quoi du type: reentrant => thread-safe, d'autres disent thread-safe => reentrant.
Merci pour votre aide
-
Bonjour,
Plutôt qu'un long discours, je te donne ce lien (ce qui est dit dedans me semble correct).
Pour safe-thread, cela signifie tout simplement que tu peux exécuter une portion de code simultanément sans problème.
-
Je trouve que la page wikipédia se contredit en disant que la thread-safety est "une propriété plus forte" que la réentrance, juste avant de dire qu'aucune des deux n'implique l'autre.
D'autres en effet disent l'inverse.
Je pense que la réponse "aucun n'implique l'autre" est la bonne. Ces deux concepts sont orthogonaux.
-
Je pense que la confusion vient du fait que tous ne donnent pas la même définition à la réentrance. L'exemple que tu donnes du MSDN, par exemple, pour moi ce n'est pas vraiment ce que j'appelle un problème de réentrance. C'est juste un problème de récursivité, qui est beaucoup plus facile à comprendre qu'un problème de réentrance entre deux threads différents.
Mais si on considère que c'est bien de la réentrance alors oui, réentrant n'implique pas thread-safe et thread-safe n'implique pas réentrant.