Γιατί εμφανίζεται η εξαίρεση ταυτόχρονης τροποποίησης στη java;

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

Γιατί εμφανίζεται η εξαίρεση ταυτόχρονης τροποποίησης στη java;
Γιατί εμφανίζεται η εξαίρεση ταυτόχρονης τροποποίησης στη java;
Anonim

Η εξαίρεση ταυτόχρονης τροποποίησης προκύπτει όταν ένα αντικείμενο επιχειρείται να τροποποιηθεί ταυτόχρονα όταν δεν είναι επιτρεπτό. Αυτή η εξαίρεση έρχεται συνήθως όταν κάποιος εργάζεται με κλάσεις Java Collection. Για παράδειγμα - Δεν επιτρέπεται ένα νήμα να τροποποιεί μια Συλλογή όταν κάποιο άλλο νήμα επαναλαμβάνεται από πάνω της.

Πώς μπορώ να διορθώσω την εξαίρεση ταυτόχρονης τροποποίησης;

Μπορούμε επίσης να αποφύγουμε την εξαίρεση ταυτόχρονης τροποποίησης σε ένα περιβάλλον μονού νήματος. Μπορούμε να χρησιμοποιήσουμε τη μέθοδο αφαίρεσης του Iterator για να αφαιρέσουμε το αντικείμενο από το υποκείμενο αντικείμενο συλλογής. Αλλά σε αυτήν την περίπτωση, μπορείτε να αφαιρέσετε μόνο το ίδιο αντικείμενο και όχι οποιοδήποτε άλλο αντικείμενο από τη λίστα.

Πώς αποτρέπετε την εξαίρεση ταυτόχρονης τροποποίησης σε έναν χάρτη;

χρησιμοποιήστε ConcurrentHashMap. συνεχίστε να χρησιμοποιείτε το απλό HashMap, αλλά δημιουργήστε έναν νέο χάρτη σε κάθε τροποποίηση και αλλάξτε χάρτες στα παρασκήνια (συγχρονίζοντας τη λειτουργία διακόπτη ή χρησιμοποιώντας AtomicReference)

Ποια μέθοδος επαναλήπτη δημιουργεί εξαίρεση ταυτόχρονης τροποποίησης;

Αν καλέσουμε μια ακολουθία μεθόδων σε ένα αντικείμενο που παραβιάζει τη σύμβασή του, τότε το αντικείμενο ρίχνει ConcurrentModificationException. Για παράδειγμα: εάν κατά την επανάληψη πάνω από τη συλλογή, προσπαθήσουμε απευθείας να τροποποιήσουμε αυτήν τη συλλογή, τότε ο δεδομένος fail-fast iterator θα ρίξει αυτήν την ConcurrentModificationException.

Ποια είναι η εξαίρεση ταυτόχρονης τροποποίησης στην υπερχείλιση στοίβας Java;

Αν ένα μεμονωμένο νήμα εκδίδει μια ακολουθία κλήσεων μεθόδου που παραβιάζει τη σύμβαση ενός αντικειμένου, το αντικείμενο μπορεί να κάνει αυτήν την εξαίρεση. Για παράδειγμα, εάν ένα νήμα τροποποιήσει μια συλλογή απευθείας ενώ επαναλαμβάνει τη συλλογή με έναν επαναλήπτη γρήγορης αποτυχίας, ο επαναλήπτης θα κάνει αυτήν την εξαίρεση.

Συνιστάται:

Ενδιαφέροντα άρθρα
Κάνετε ευρετηρίαση στα πάντα;
Διαβάστε περισσότερα

Κάνετε ευρετηρίαση στα πάντα;

Η ευρετηρίαση στα panda σημαίνει απλώς επιλέγοντας συγκεκριμένες σειρές και στήλες δεδομένων από ένα DataFrame. Η ευρετηρίαση θα μπορούσε να σημαίνει την επιλογή όλων των γραμμών και ορισμένων στηλών, ορισμένων γραμμών και όλων των στηλών ή ορισμένων από καθεμία από τις γραμμές και τις στήλες.

Είναι οι bobbleheads μόνιμο Fallout 76;
Διαβάστε περισσότερα

Είναι οι bobbleheads μόνιμο Fallout 76;

Οι κύριες αλλαγές που έχουν γίνει στους Bobbleheads στο Fallout 76 είναι διπλές. Τα μπόνους που χορηγούν είναι σε μεγάλο βαθμό τα ίδια, αλλά η διάρκεια δεν είναι. Οι μπαμπελοκέφαλοι δεν είναι πλέον μόνιμοι, αντ' αυτού προσφέρουν λάτρεις των στατιστικών για 1 ώρα.

Γιατί η διδασκαλία είναι σημαντική;
Διαβάστε περισσότερα

Γιατί η διδασκαλία είναι σημαντική;

Οι δάσκαλοι παρέχουν τη δύναμη της εκπαίδευσης στη σημερινή νεολαία, δίνοντάς τους έτσι τη δυνατότητα για ένα καλύτερο μέλλον. Οι δάσκαλοι απλοποιούν το σύνθετο και κάνουν τις αφηρημένες έννοιες προσιτές στους μαθητές. Οι δάσκαλοι εκθέτουν επίσης τα παιδιά σε ιδέες και θέματα με τα οποία διαφορετικά δεν θα είχαν έρθει σε επαφή.