iOS synchronized的作用
2015-07-04 09:54
435 查看
这个东西其实就是 一个加锁。如果self 其他线程访问,则会阻塞。这样做一般是用来对单例 进行一个死锁的保护
@synchronized(self) {
//something like this
kGoableValue = _shareInstance;
}
一、当两个并发线程访问同一个对象object中的这个synchronized(self)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、当一个线程访问object的一个synchronized(self)同步代码块时,其他线程对object中所有其它synchronized(self)同步代码块的访问将被阻塞。
三、然而,当一个线程访问object的一个synchronized(self)同步代码块时,另一个线程仍然可以访问该object中的除synchronized(this)同步代码块以外的部分。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用
/article/9496021.html
@synchronized(self) {
//something like this
kGoableValue = _shareInstance;
}
一、当两个并发线程访问同一个对象object中的这个synchronized(self)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、当一个线程访问object的一个synchronized(self)同步代码块时,其他线程对object中所有其它synchronized(self)同步代码块的访问将被阻塞。
三、然而,当一个线程访问object的一个synchronized(self)同步代码块时,另一个线程仍然可以访问该object中的除synchronized(this)同步代码块以外的部分。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用
/article/9496021.html
相关文章推荐
- 一种基于im客户端实现消息图片管理的方法和装置
- 使用 iOS6 自带的 social.framework 实现分享文字图片等到新浪微博,twitter,
- iOS中NSDate和NSString相互转换
- iOS中蓝牙的实现方案
- 获取iOS应用中当前处于Activity状态的ViewController
- iOS开发系列课程(01) --- iOS编程入门
- iOS中堆和栈的区别
- 苹果开发 笔记(44)
- iOS7: 漫谈基础集合类(NSArray, NSSet, NSOrderedSet 和 NSDictionary)
- IOS开发之----单例设计模式
- iOS 8 Auto Layout界面自动布局系列5-自身内容尺寸约束、修改约束、布局动画
- iOS 计算 日期 距离 当前 系统的日期 相差 多少
- [iOS]使用autolayout的时候会有明明设置和父视图左右间距为0但却还有空隙问题
- ios监听某些事件的方法
- iOS内存管理之:引用计数、ARC、自动释放池autoreleasepool和便捷方法之间的关系
- iOS_18_开关控制器_NavigationController_push道路_数据传输
- ios 剪切板 复制粘贴功能的实现。
- 天猫11.11:多终端下的一致性体验
- IOS基础知识梳理(2)
- iOS中使用协议(protocol)的用法