- -Atomisch bedeutet, dass nur ein Thread auf die Variable zugreift (statischer Typ).
- -Atomic ist thread-sicher.
- -aber es ist langsam in der Leistung
Wie man sich anmeldet:
Da atomar so Standard ist,
@property (retain) NSString *name;
AND in der Implementierungsdatei
self.name = @"sourov";
Angenommen, eine Aufgabe, die sich auf drei Eigenschaften bezieht, ist
@property (retain) NSString *name;
@property (retain) NSString *A;
@property (retain) NSString *B;
self.name = @"sourov";
Alle Eigenschaften arbeiten parallel (wie asynchron).
Wenn Sie "Name" aus dem Thread aufrufen A ,
Und
Wenn Sie zur gleichen Zeit
[self setName:@"Datta"]
vom Gewinde B ,
Jetzt Wenn die Eigenschaft *name nichtatomar ist dann
- Es wird der Wert "Datta" für A zurückgegeben
- Es wird der Wert "Datta" für B zurückgegeben
Das ist der Grund, warum nicht atomar ist Thread unsicher genannt, aber es ist schnell in der Leistung wegen der parallelen Ausführung
Wenn die Eigenschaft *name atomar ist
- Sie wird den Wert "Sourov" für A sicherstellen
- Dann wird für B der Wert "Datta" zurückgegeben.
Deshalb heißt atomic auch thread Safe y Deshalb wird es als schreib- und lesegeschützt bezeichnet.
In einer solchen Situation wird der Vorgang seriell durchgeführt. Und langsam in der Leistung
- Nichtatomar bedeutet, dass mehrere Threads auf die Variable zugreifen (dynamischer Typ).
- Nonatomic ist threadunsicher.
- aber es ist schnell in der Leistung
Nonatomic ist NICHT das Standardverhalten, wir müssen das Schlüsselwort nonatomic im Property-Attribut hinzufügen.
Für In Swift Bestätigung, dass Swift-Eigenschaften nicht atomar im Sinne von ObjC sind. Ein Grund dafür ist, dass Sie darüber nachdenken, ob die Atomarität pro Eigenschaft für Ihre Bedürfnisse ausreichend ist.
Referenz: https://forums.developer.apple.com/thread/25642
Für weitere Informationen besuchen Sie bitte die Website http://rdcworld-iphone.blogspot.in/2012/12/variable-property-attributes-or.html
4 Stimmen
developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/