Objective-C中线程安全和非线程安全之间的区别

时间:2016-06-10 07:22:44

标签: ios objective-c

对于thread safenon-thread-safe属性属性,atomicnonatomic概念的概念很混乱,其解释如下: -

atomic表示thread safenonatomic表示non-thread-safenonatomic表示高效。

@property (nonatomic, weak) NSArray *myArray;

但究竟什么是线程安全的和非线程安全的呢?请以非常简单的方式解释!

2 个答案:

答案 0 :(得分:0)

两者都是非线程安全的。

Atomic只是一个读写安全。

详细了解此处:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html

答案 1 :(得分:0)

首先,我们应该知道什么是线程。所有iPhone都使用多核处理器。通常,整个应用程序在主线程中运行。 (即在单核心中运行)。

开发人员应该利用多核处理器并创建单独的线程,以便在不同的核心中同时运行不同的进程。因此,我们提高了应用程序的效率。

假设您使用的是具有非原子属性的字符串,并且您在应用中使用了两个线程。当两个线程同时尝试更改/访问字符串时,结果将是不可预测的。因为我们不知道哪个进程会在哪个时间运行。

那么,那时,我们必须设置具有原子属性的字符串。以便一个进程/线程一次处理该字符串。就像那样,我们正在使它变得安全。