Les méthodes génériques pour vérifier si une bibliothèque / API est thread-safe
-
11-09-2019 - |
Question
I reçu une bibliothèque à partir d'un promoteur extérieur sous la forme d'une API bien définie (en C ++ et Java). Que peut-être quelques tests pour vérifier si la bibliothèque est thread-safe?
La solution
Fondamentalement, vous ne pouvez pas, il est plus ou moins impossible de tester la sécurité des threads.
Et si vous n'avez pas est thread-safe garantie de l'auteur que la bibliothèque alors ils ne vont pas résoudre les problèmes de filetage, les versions futures pourraient être si moins thread-safe.
Si vous avez le code source, vous pouvez étudier les problèmes communs fil de sécurité: état partagé, serrures, etc. Mais si vous avez seulement les binaires, le mieux que vous pouvez espérer est de montrer que la bibliothèque est pas thread-safe. Même reproduire alors les problèmes peuvent être extrêmement fiable difficile.