atomic只是保证了操作的原子性,原子操作即一个操作不可再分。

atomic只是对读写操作进行了加锁,保证了多线程开发时一个读写操作完成之后才能进行下一个读写操作

atomic和线程安全没有太大的关系,举例:如果A,B,C都在进行写的操作,D进行读操作,D就会读取到随机的值(ABC不清楚谁修改的),这就不是线程安全了,要想保住线程安全必须加锁

-(void)setName:(NSString *)name{

@synchronized(self){

if(_name!=name){

[_name release];

_name = [name copy];

}

}

}

-(NSString *)name{

@synchronized(self){

return _name;

}

}

转载于:https://www.cnblogs.com/llhlj/p/7308186.html

atomic一定线程安全吗相关推荐

  1. iOS进阶之atomic一定是线程安全的吗(10)

    IOS项目中nonatomic和atomic分析 //有两个属性,分别设置为nonatomic和atomic #import <UIKit/UIKit.h>@interface ViewC ...

  2. iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)

    2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...

  3. iOS开发多线程篇—线程安全

    一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数 ...

  4. OS中atomic的实现解析

    OS中atomic的实现解析 转自:http://my.oschina.net/majiage/blog/267409  摘要 atomic属性线程安全,会增加一定开销,但有些时候必须自定义atomi ...

  5. atomic、锁、多线程

    [TOC] @(iOS开发学习)[温故而知新] 一:atomic是线程安全的吗 atomic所说的线程安全只是保证了属性的getter和setter存取方法的线程安全,并不能保证整个对象是线程安全的. ...

  6. IOS学习之多线程(3)--线程安全

    转载自 http://www.cnblogs.com/wendingding/p/3805841.html 一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块 ...

  7. Java线程池七个参数详解:核心线程数、最大线程数、空闲线程存活时间、时间单位、工作队列、线程工厂、拒绝策略

    源码简介 ThreadPoolExecutor是JDK中的线程池实现,这个类实现了一个线程池需要的各个方法,它提供了任务提交.线程管理.监控等方法. 下面是ThreadPoolExecutor类的构造 ...

  8. 【阿里笔试题】线程篇

    前些日子面试阿里,其中有一笔试题如下: 补充如下程序通过N个线程顺序循环打印从0至100,如给定N=3则输出: thread0: 0 thread1: 1 thread2: 2 thread0: 3 ...

  9. ios查看线程数量_iOS多线程进阶

    .一.进程 进程:是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开迅雷.Xcode,系统就会分别启动2个进程 二.线程 1.什么是线程 ...

  10. Java手写线程池-第一代(原创)

    个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 Java手写线程池(第一代) ...

最新文章

  1. leetcode--链表的设计--python
  2. 中心频率和一些概念解释
  3. centos7 防火墙_Linux系统安全Centos 7的Firewalld防火墙基础
  4. java中容易混淆的方法_java中容易混淆的概念
  5. 上周热点回顾(7.10-7.16)
  6. 销售自动记帐凭证 - 三个常见问题
  7. Android获取手机和系统版本等信息的代码
  8. 利用C++Builder自定义Windows窗体“系统菜单”
  9. git 更换本地目录_git 本地库的使用
  10. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6
  11. 没有什么能难倒程序员,教你如何下载付费歌曲
  12. 注销Apple ID的正确打开方式
  13. 集线器,路由器,交换机的作用和差别是什么?怎样区分交换机,集线器,路由器?
  14. 作业四:结对编程项目--四则运算
  15. python写excel,请大表哥喝杯茶
  16. 7段数码管动态扫描c语言,7段数码管动态扫描原理及其实现方式
  17. Android课程表显示
  18. P1757 通天之分组背包(动态规划 分组背包)
  19. 简单的sql语句及例子
  20. u深度做linux启动盘,u深度u盘启动盘制作教程

热门文章

  1. elasticsearch 问题.
  2. leetcode------Binary Tree Level Order Traversal II
  3. svn add后的数据如何取消-svn revert??--zz
  4. 分享Silverlight/WPF/Windows Phone一周学习导读(3月28日-4月2日)
  5. 联想y50p70换固态硬盘_换了固态硬盘电脑就变快?告诉你:固态硬盘不是万能药...
  6. linux上调用短信接口,短信猫接口程序Gnokii For Linux安装
  7. 能给别人吗_《奇葩说》观点引热议:一种能看透别人心思的能力,你敢要吗?...
  8. Zookeeper C API 指南七(Zookeeper 辅助 API 介绍)
  9. JavaScript数据类型之Number
  10. pdf线条粗细设置_如何让生活办公更便捷系列之二:S Pen玩转PDF编辑