當(dāng)兩個線程同時修改同一個atomic變量時践宴,雖然每個訪問都是原子的,但整個操作序列(第一個線程的修改 + 第二個線程的修改)并不是原子的.
這意味著爷怀,第一個線程可能會修改變量的值阻肩,然后第二個線程在第一個線程的修改完成之前就獲取到了變量的值。這樣运授,第二個線程可能會基于舊的值進(jìn)行操作烤惊,從而導(dǎo)致數(shù)據(jù)不一致.
atomic和nonatomic區(qū)別atomic:系統(tǒng)會自動生成setter/getter方法會進(jìn)行加鎖的操作(鎖僅僅保證setter/getter存取方法的線程安全).因為setter/getter方法有加鎖...