一 Atomic: 是默認(rèn)的
1 會(huì)保證 CPU 能在別的線程來(lái)訪問(wèn)這個(gè)屬性之前啃匿,先執(zhí)行完當(dāng)前流程
2 速度不快,因?yàn)橐WC操作整體完成
二 Non-Atomic:不是默認(rèn)的
1 更快
2 線程不安全
3 如有兩個(gè)線程訪問(wèn)同一個(gè)屬性蛆楞,會(huì)出現(xiàn)無(wú)法預(yù)料的結(jié)果
三 詳細(xì)區(qū)別:(假如有個(gè)屬性 name)
1 屬性 name 僅僅是(讀/寫)安全的溯乒!
1)假如在執(zhí)行[self name]方法的時(shí)候執(zhí)行[self setName:@"A"];那么就會(huì)線程等待,等[self name]執(zhí)行完后再執(zhí)行[self setName:@"A"]豹爹。(其實(shí)就是串行執(zhí)行)
2)假如在執(zhí)行[self name]的時(shí)候執(zhí)行[name release]橙数;那么就會(huì)造成crash!因?yàn)樗槐WC讀寫安全帅戒!(在這里[self name]與[name release]并發(fā)執(zhí)行)
2 nonatomic 很簡(jiǎn)單就是 并發(fā)執(zhí)行 灯帮,所以不保證安全!