Sont dans l'ensemble des règles/lignes directrices pour ce qui fait une méthode thread-safe? Je comprends qu'il y a probablement un million de situations particulières, mais qu'en est-il général? C'est ce simple?
- Si une méthode n'accède variables locales, c'est thread-safe.
Est ce que c'est? Cela s'applique pour les méthodes statiques?
Une seule réponse, fournie par @Cybis, était: "les variables Locales ne peuvent pas être partagées entre les threads, car chaque thread possède sa propre pile." Est-ce le cas pour les méthodes statiques?
Si une méthode est passé d'un objet de référence, ne fait que briser la sécurité des threads? J'ai fait quelques recherches, et il y a beaucoup à propos de certains cas, mais je m'attendais à être en mesure de définir, par l'utilisation d'un certain nombre de règles, de lignes directrices à suivre pour s'assurer qu'une méthode est thread-safe.
Donc, je suppose que ma question ultime est: "Est-il une courte liste de règles qui définissent un" thread-safe " méthode? Si oui, quels sont-ils?"
** EDIT **
Beaucoup de bons points ont été faites ici. Je pense que la vraie réponse à cette question est: "Il n'y a pas de règles simples pour assurer la sécurité des threads." Cool. Des beaux. Mais en général, je pense que l'on a accepté la réponse fournit un bien, un court résumé. Il y a toujours des exceptions. Ainsi soit-il. Je peux vivre avec ça.