Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να αποτρέψει την ταυτόχρονη πρόσβαση σε μια μέθοδο σε Java

Σύγχρονη επεξεργαστές με πολλαπλούς πυρήνες μπορούν να επωφεληθούν από την ταυτόχρονη εφαρμογές Java . Η ταυτόχρονη εφαρμογή είναι αυτή που εκτελεί πολλές λειτουργίες ταυτόχρονα . Συνδρομικότητα εισάγει μοναδικές προκλήσεις που πρέπει να αντιμετωπιστούν για να αποφευχθούν τα προβλήματα . Ένα σημαντικό πρόβλημα που εμφανίζεται όταν δύο νήματα εκτέλεσης κάθε πρόσβαση την ίδια μέθοδο ταυτόχρονα . Ένα νήμα μπορεί να αλληλεπιδράσει με ένα άλλο και να κάνουν αξιόπιστα δεδομένα . Για τον έλεγχο αυτό το πρόβλημα , μπορείτε να αποτρέψετε την ταυτόχρονη πρόσβαση σε μια μέθοδο χρησιμοποιώντας τη λειτουργία συγχρονισμού της Java . Τα πράγματα που θα χρειαστείτε
Ανάπτυξη Λογισμικού Java Kit με NetBeans ολοκληρωμένο περιβάλλον ανάπτυξης ( IDE ) Bundle
Η Εμφάνιση Περισσότερες οδηγίες
Η

1 Τοποθετήστε το NetBeans IDE κάνοντας κλικ στο εικονίδιο του προγράμματος της . Όταν τα φορτία του προγράμματος , πλοηγηθείτε στο " New /New Project" και επιλέξτε " Java Application " από τη λίστα στα δεξιά της οθόνης . Ένα νέο αρχείο πηγαίου κώδικα εμφανίζεται στον επεξεργαστή κειμένου NetBeans . Το αρχείο πηγαίου κώδικα περιέχει μια κενή κύρια λειτουργία 2

κηρύξει μια στατική μεταβλητή με όνομα x , γράφοντας τα εξής στο πλαίσιο της κύριας λειτουργίας στον πηγαίο κώδικα : . Στατική int x = 0 ?

με 3

Δημιουργήστε μια συγχρονισμένη μέθοδος με την προσθήκη του " συγχρονισμένη " λέξη-κλειδί για τη δήλωση μέθοδο . Μία συγχρονισμένη μέθοδος μπορεί να προσεγγιστεί μόνο από ένα νήμα σε μια στιγμή , εμποδίζοντας έτσι ασυνέπειας των δεδομένων. Για να δηλώσετε μια μέθοδο που ονομάζεται " methodname " συγχρονισμένη , γράψτε την ακόλουθη δήλωση στο αρχείο του πηγαίου κώδικα : δημόσια συγχρονισμένη methodname ( )
Η 4

Αύξησε έναν ακέραιο γράφοντας την ακόλουθη δήλωση μέσα στις αγκύλες της μεθόδου επιστρέφει: x + + ?
5

Καλέστε το συγχρονισμένο τρόπο . Για να καταλάβετε τι επιτυγχάνει συγχρονισμό , πρώτα ας υποθέσουμε ότι η μέθοδος αυτή δεν συγχρονίζονται . Αν δύο παράλληλα νήματα καλέσετε τη μέθοδο ταυτόχρονα , ο καθένας θα αυξήσετε τη μεταβλητή x . Δεδομένου χ ξεκινά στις 0 , το αποτέλεσμα μιας λειτουργίας προσαύξησης θα είναι χ = 1 . Αυτό είναι ένα πρόβλημα , επειδή η μέθοδος ονομαζόταν δύο φορές, και ως εκ τούτου, πρέπει να ισούται με χ 2 . Δεδομένου ότι " methodname " είναι συγχρονισμένη , μόνο μία από τις δύο παράλληλες κλωστές θα εισέλθουν τη μέθοδο σε έναν χρόνο . Ένα νήμα θα εισάγετε " methodname , " αύξηση x ​​, και την έξοδο . Αυτό επιτρέπει το δεύτερο νήμα για να εισάγετε το " methodname » και να εκτελέσει τη δεύτερη πράξη αύξησης. Με τη συγχρονισμένη λέξη-κλειδί , δύο κλήσεις σε " methodname " αποτέλεσμα x είναι ίσο με 2 . Μια κλήση μέθοδος μπορεί να γραφτεί σαν αυτό : methodname ( ) ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα