Java éviter condition de course SANS synchronisé/verrouillage

Afin d'éviter condition de course, nous pouvons synchroniser les écrire et les méthodes d'accès sur les variables partagées, pour verrouiller ces variables pour les autres threads.

Ma question est si il y a d'autres (mieux) les moyens d'éviter condition de course? Verrouillage de rendre le programme lente.

Ce que j'ai trouvé sont:

  • Atomique à l'aide de classes, si il y a une seule variable partagée.
  • à l'aide d'un immuable conteneur pour le multi variables partagées et de déclarer cet objet conteneur avec des volatiles. (J'ai trouvé cette méthode à partir du livre "Java Simultanéité dans la Pratique")

Je ne suis pas sûr si ils effectuent plus vite que syncnronized façon, est-il d'autres méthodes?

grâce

Ceux-ci sont à la fois de bonnes solutions de rechange. Il existe de nombreuses solutions de rechange qui peuvent être utilisés. L'applicabilité de chaque dépendra de votre situation et exactement ce que vous essayez d'atteindre. Pourriez-vous nous donner un peu plus de détails?

OriginalL'auteur cn1h | 2011-12-01