Atomique

Définition - Que signifie Atomic?

Atomic est une boîte à outils de classes de packages variables java.util.concurrent.atomic, qui aident à écrire des algorithmes de verrouillage et sans attente avec le langage Java. Un algorithme ne nécessitant que des threads partiels pour une progression constante est sans verrouillage. Dans un algorithme sans attente, tous les threads progressent en continu, même en cas d'échec ou de retard de thread. Les algorithmes de verrouillage et sans attente sont également appelés algorithmes non bloquants. Les algorithmes non bloquants sont utilisés pour la planification des processus et des threads au niveau du système d'exploitation et de la machine virtuelle Java.

Definir Tech explique Atomic

Toutes les classes de package java.util.concurrent.atomic ont le préfixe "atomic" dans leurs noms. Il existe différents types de variables atomiques disponibles dans le package java.util.concurrent.atomic, notamment:

  • AtomicBoolean
  • AtomicInteger
  • AtomicIntegerArray
  • AtomicIntegerFieldUpdater
  • AtomicLong
  • AtomicLongArray
  • AtomicLongFieldUpdater
  • AtomicReference

Dans le langage Java, la synchronisation coordonne l'accès aux champs de threads partagés et permet uniquement aux threads détenant des verrous d'accéder et de modifier les variables protégées par le verrou. Les modifications de ce thread sont visibles par le thread qui suit, mais uniquement après que le thread libère le verrou.
Un exemple est un scénario où le thread A détient un verrou. A ne peut accéder qu'aux variables protégées par ce verrou et y apporter des modifications. Si le thread B détient ce verrou après A, alors seul B peut voir les modifications de A sur les variables protégées par ce verrou particulier. Le principal problème de verrouillage se produit lorsque B tente d'acquérir un verrou détenu par A. Dans ce cas, B est bloqué pour attendre que le verrou soit disponible. Les algorithmes non bloquants résolvent ce problème.

L'objectif principal de la création de classes atomiques est d'implémenter des structures de données non bloquantes et leurs classes d'infrastructure associées. Les classes atomiques ne remplacent pas java.lang.Integer et les classes associées. La plupart des classes de package java.util.concurrent utilisent des variables atomiques au lieu de la synchronisation, directement ou indirectement. Les variables atomiques sont également utilisées pour atteindre un débit plus élevé, ce qui signifie des performances de serveur d'applications plus élevées.

Cette définition a été écrite dans le contexte de Java