2016-06-10 4 views
0

ich mit einem Konzept von thread safe und non-thread-safe Konzept für atomic und nonatomic Eigenschaft Attribute messed bin, deren Erklärung ist: -Unterschied zwischen Thread-sicher und nicht-Thread-sicher in Objective-C

atomic bedeutet thread safe und nonatomic bedeutet non-thread-safe und nonatomic gibt hohe Leistung.

@property (nonatomic, weak) NSArray *myArray; 

Aber was genau thread-sicher und nicht-Thread-sicher bedeutet? Bitte erklären Sie es auf sehr einfache Weise!

+0

Wo ist die Erklärung von Thread-Safe und Non-Thread-Safe auf dieser Seite? –

+0

Und was ist mit dem Unterschied zwischen den beiden –

+0

Ich frage nicht über atomare oder nicht atomare. Ich frage: - was genau thread-safe und non-thread-safe bedeutet und deren Unterschied? Bitte erklären Sie es auf sehr einfache Weise! –

Antwort

0

Zunächst einmal sollten wir wissen, was Thread ist. Alle iPhones verwenden Multi-Core-Prozessoren. Normalerweise läuft die gesamte App im Hauptthread. (d. h. in dem einzelnen Kern laufen).

Die Entwickler sollten die Vorteile der Multi-Core-Prozessoren nutzen und separate Threads erstellen, um verschiedene Prozesse gleichzeitig in unterschiedlichen Core-Umgebungen ausführen zu können. Dadurch erhöhen wir die Effizienz der App.

Angenommen, Sie verwenden eine Zeichenfolge mit nichtatomaren Eigenschaft und Sie verwenden zwei Threads in Ihrer App. Wenn die beiden Threads gleichzeitig versuchen, die Zeichenfolge zu ändern, ist das Ergebnis unvorhersehbar. weil wir nicht wissen, welcher Prozess zu welcher Zeit ausgeführt wird.

Also, zu dieser Zeit müssen wir die Zeichenfolge mit der Eigenschaft atomic setzen. so dass ein Prozess/Thread die Zeichenfolge gleichzeitig behandelt. So machen wir es threadsicher.

+0

Also was meinst du zu sagen, wir sollten nichtatomare für Multithreading verwenden? –

+0

Michael, 'atomic' gewährleistet keine Thread-Sicherheit. In bestimmten, sehr engen Situationen tut es das, aber im Allgemeinen ist es nicht ausreichend. – Rob