Σπίτι Ανάπτυξη Τι είναι ατομικό στη java; - ορισμός από την τεχνολογία

Τι είναι ατομικό στη java; - ορισμός από την τεχνολογία

Πίνακας περιεχομένων:

Anonim

Ορισμός - Τι σημαίνει Atomic;

Το Atomic είναι μια εργαλειοθήκη των μεταβλητών κλάσεων πακέτων java.util.concurrent.atomic, τα οποία βοηθούν στο γράψιμο αλγορίθμων κλειδώματος και αναμονής χωρίς αναμονή με τη γλώσσα Java. Ένας αλγόριθμος που απαιτεί μόνο μερικά σπειρώματα για συνεχή πρόοδο δεν είναι κλειδωμένος. Σε έναν αλγόριθμο χωρίς αναμονή, όλα τα νήματα προχωρούν συνεχώς, ακόμα και σε περιπτώσεις βλάβης ή καθυστέρησης νήματος. Οι αλγόριθμοι κλειδώματος και αναμονής είναι επίσης γνωστοί ως αλγόριθμοι μη αποκλεισμού. Οι αλγόριθμοι μη αποκλεισμού χρησιμοποιούνται για τον προγραμματισμό διαδικασιών και κλωστών στο επίπεδο του λειτουργικού συστήματος και των εικονικών μηχανών Java.

Η Techopedia εξηγεί την Atomic

Όλες οι κλάσεις πακέτων java.util.concurrent.atomic έχουν το "ατομικό" πρόθεμα στα ονόματά τους. Υπάρχουν διάφοροι τύποι ατομικών μεταβλητών που είναι διαθέσιμοι στο πακέτο java.util.concurrent.atomic, όπως:

  • AtomicBoolean
  • AtomicInteger
  • AtomicIntegerArray
  • AtomicIntegerFieldUpdater
  • AtomicLong
  • AtomicLongArray
  • AtomicLongFieldUpdater
  • AtomicReference
Στη γλώσσα Java, ο συγχρονισμός συντονίζει την πρόσβαση στα κοινά πεδία κλωστών και επιτρέπει μόνο σε νήματα που διαθέτουν κλειδώματα να έχουν πρόσβαση και να τροποποιούν μεταβλητές που προστατεύονται από την κλειδαριά. Οι τροποποιήσεις αυτού του νήματος είναι ορατές στο νήμα που ακολουθεί, αλλά μόνο αφού το νήμα απελευθερώσει την κλειδαριά.

Ένα παράδειγμα είναι ένα σενάριο όπου το νήμα Α κρατά κλειδαριά. A είναι μόνο σε θέση να έχει πρόσβαση και να κάνει αλλαγές στις μεταβλητές που προστατεύονται από αυτήν την κλειδαριά. Εάν το νήμα Β κρατά αυτή την κλειδαριά μετά το Α, τότε μόνο το Β μπορεί να δει τις αλλαγές του Α στις μεταβλητές που προστατεύονται από την συγκεκριμένη κλειδαριά. Το κύριο πρόβλημα με το κλείδωμα εμφανίζεται όταν το B προσπαθεί να αποκτήσει μια κλειδαριά που κρατείται από την Α. Σε αυτή την περίπτωση, το B εμποδίζεται να περιμένει μέχρι να είναι διαθέσιμη η κλειδαριά. Οι αλγόριθμοι μη αποκλεισμού επιλύουν αυτό το πρόβλημα.


Ο κύριος σκοπός πίσω από την κατασκευή ατομικών τάξεων είναι η υλοποίηση δομών δεδομένων μη μπλοκαρίσματος και οι σχετικές κατηγορίες υποδομής. Οι ατομικές τάξεις δεν χρησιμεύουν ως αντικαταστάσεις για το java.lang.Integer και τις σχετικές τάξεις. Οι περισσότερες κλάσεις πακέτων java.util.concurrent χρησιμοποιούν ατομικές μεταβλητές αντί για συγχρονισμό, είτε άμεσα είτε έμμεσα. Οι ατομικές μεταβλητές χρησιμοποιούνται επίσης για την επίτευξη υψηλότερης απόδοσης, πράγμα που σημαίνει υψηλότερη απόδοση διακομιστή εφαρμογών.

Αυτός ο ορισμός γράφτηκε στο πλαίσιο της Java
Τι είναι ατομικό στη java; - ορισμός από την τεχνολογία