[网络和多线程]4、线程同步
来源:互联网 发布:pcb线路板软件下载 编辑:程序博客网 时间:2024/06/02 15:30
解决 —— 互斥锁:
// 1、创建锁
NSLock *lock = [[NSLock alloc]init];
// 2、加锁
[lock lock];
//在这里添加要保护的代码
// 3、解锁
[lock unlock];
加锁方式2(不推荐)
@synchronized(锁对象 ) {//锁对象,任何对象都可以
// 在这里添加要保护的代码
}
@synchronized(锁对象) { // 需要锁定的代码 }
注意:锁定1份代码只用1把锁,用多把锁是无效的
OC在定义属性时有nonatomic和atomic两种选择
atomic:原子属性,为setter方法加锁(默认就是atomic)
nonatomic:非原子属性,不会为setter方法加锁
atomic加锁原理
@property (assign, atomic) int age;
- (void)setAge:(int)age
{
@synchronized(self) {
_age = age;
}
}
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait;
- [网络和多线程]4、线程同步
- [Win32] 多线程和线程同步
- java-多线程 | 线程安全和线程同步
- JAVA多线程实现和线程同步总结
- 解析文件和多线程 线程同步
- 【Java多线程】-线程同步synchronized和volatile
- PV 线程同步和多线程问题
- Java多线程之线程同步和死锁
- 基础-线程-同步、异步和多线程
- JavaSE:Java多线程并发和线程同步
- Java 多线程和线程同步总结
- VC++多线程编程-线程间的通信和线程同步
- POSIX线程之二. 线程同步,属性和多线程
- Thread(线程)详解2—多线程同步和线程池
- java多线程(二)之线程安全和线程同步
- 4、Linux多线程,线程同步(2)
- 多线程-线程同步
- 多线程 线程同步
- Python学习笔记<list和tuple>
- Android新组件RecyclerView介绍,其效率更好
- [网络和多线程]1、iOS中的进程、线程
- [网络和多线程]2、pThread 的基本使用方法(不推荐使用)
- [网络和多线程]3、NSThread的基本使用方法
- [网络和多线程]4、线程同步
- 用ajax跨域访问通过php的问题,解决方法
- [网络和多线程]5、线程通信
- Mac - gdb配置
- 再谈ASP.NET第七 - 跨应用、跨服务器的表单验证
- 搞个这样的APP要多久?
- Web性能优化:What? Why? How?
- 我是如何在SQLServer中处理每天四亿三千万记录的
- CQRS架构简介