2016-02-22 6 views

Antwort

10

Es gibt signifikante Unterschiede zwischen diesen beiden Objekten, obwohl das Nettoergebnis ist die gleiche, sie sind auf jeden Fall sehr unterschiedlich und unter sehr unterschiedlichen Umständen verwendet.

Sie verwenden einen Grund Long Objekt, wenn:

  • Sie die Wrapper-Klasse benötigen
  • Sie arbeiten mit einer Sammlung
  • Sie nur mit Objekten beschäftigen möchten und nicht die Primitiven (die aus irgendwie funktioniert)

Sie verwenden einen AtomicLong wenn:

  • Sie müssen garantieren, dass der Wert kann
  • Sie brauchen nicht die Wrapper-Klasse in einer Umgebung mit gemeinsamem Zugriff verwendet werden (wie dieser Klasse autobox nicht)

Long selbst nicht für erlaubt Gewinde interopability da zwei Threads konnten sowohl sehen als auch den gleichen Wert aktualisieren, aber mit einem AtomicLong, gibt es ziemlich anständig Garantien um den Wert, der mehr Threads sehen.

effektiv, wenn Sie jemals mit einem Gewinde Mühe arbeiten, werden Sie nicht AtomicLong verwenden müssen.