Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 24045|Απάντηση: 0

[Πρόγραμμα κονσόλας] Εκμάθηση ευμετάβλητων λέξεων-κλειδιών σε .net/C#

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 23/5/2018 11:23:40 π.μ. | | | |
Σύνδεσμος MS:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

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

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

Οι ασταθείς λέξεις-κλειδιά μπορούν να εφαρμοστούν στους ακόλουθους τύπους πεδίων:

  • Τύπος παραπομπής.
  • Τύπος δείκτη (σε μη ασφαλές περιβάλλον). Σημειώστε ότι ενώ ο ίδιος ο δείκτης μπορεί να είναι μεταβλητός, το αντικείμενο στο οποίο δείχνει δεν μπορεί να είναι μεταβλητό. Με άλλα λόγια, ο «δείκτης σε ένα μεταβλητό αντικείμενο» δεν μπορεί να δηλωθεί.
  • Τύποι όπως sbyte, byte, short, ushort, int, uint, char, float και bool.
  • Ένας τύπος απαρίθμησης με έναν από τους ακόλουθους βασικούς τύπους: byte, sbyte, short, ushort, int ή uint.
  • Γενικές παράμετροι τύπου που είναι γνωστό ότι είναι τύποι αναφοράς.
  • IntPtr και UIntPtr.


Οι μεταβλητές λέξεις-κλειδιά μπορούν να εφαρμοστούν μόνο σε πεδία μιας κλάσης ή δομής.Οι τοπικές μεταβλητές δεν μπορούν να δηλωθούν ως ασταθείς


Όχι άλλες ανοησίες, γράψτε έναν βρόχο για να το δοκιμάσετε:

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



Κώδικας:



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

Αυτή τη στιγμή, προσθέτουμε μια κλειδαριά για δοκιμή και μπορεί να φανεί ότι η τιμή του a υπολογίζεται σωστά όπως περιμέναμε.



Κώδικας:



Περίληψη: Το πτητικό δεν εγγυάται την ασφάλεια του νήματος, όπως μπορείτε να δείτε στο παραπάνω παράδειγμα.




Προηγούμενος:Κατεβάστε το εργαλείο αρπαγής πακέτων smsniff 2.0 Κινεζική έκδοση
Επόμενος:VS Remote Debug λύση "Η λειτουργία εντοπισμού σφαλμάτων διαρκεί περισσότερο από το αναμενόμενο"
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com