iOS 多线程中锁的使用
来源:互联网 发布:mac质地 编辑:程序博客网 时间:2024/06/04 18:50
}
@interface TestObj : NSObject
- (void)method1;
- (void)method2;
@end
#import "TestObj.h"
@implementation TestObj
- (void)method1{
}
- (void)method2{
}
@end
4.多线程状态下,锁操作
//线程1
使用时,基本方法就是:
[lock lock];
[obj yourMethod];
[lock unlock];
我们称[obj yourMethod]为“关键部分”。
NSLock的执行原理:
某个线程A调用lock方法。这样,NSLock将被上锁。可以执行“关键部分”,完成后,调用unlock方法。
如果,在线程A 调用unlock方法之前,另一个线程B调用了同一锁对象的lock方法。那么,线程B只有等待。直到线程A调用了unlock。
最后,还是看看API中对NSLock的一些说明
@protocol NSLocking
lock 方法
- (void)lock
获得锁
unlock
- (void)unlock
释放锁
@interface NSLock
lockBeforeDate:
- (BOOL)lockBeforeDate:(NSDate *)limit
在指定的时间以前得到锁。YES:在指定时间之前获得了锁;NO:在指定时间之前没有获得锁。
该线程将被阻塞,直到获得了锁,或者指定时间过期。
tryLock
- (BOOL)tryLock
视图得到一个锁。YES:成功得到锁;NO:没有得到锁。
setName:
- (void)setName:(NSString *)newName
为锁指定一个Name
name
- (NSString *)name
返回锁指定的Name
TestObj *obj = [[TestObj alloc] init];
}
@interface TestObj : NSObject
- (void)method1;
- (void)method2;
@end
#import "TestObj.h"
@implementation TestObj
- (void)method1{
}
- (void)method2{
}
@end
4.多线程状态下,锁操作
//线程1
使用时,基本方法就是:
[lock lock];
[obj yourMethod];
[lock unlock];
我们称[obj yourMethod]为“关键部分”。
NSLock的执行原理:
某个线程A调用lock方法。这样,NSLock将被上锁。可以执行“关键部分”,完成后,调用unlock方法。
如果,在线程A 调用unlock方法之前,另一个线程B调用了同一锁对象的lock方法。那么,线程B只有等待。直到线程A调用了unlock。
最后,还是看看API中对NSLock的一些说明
@protocol NSLocking
lock 方法
- (void)lock
获得锁
unlock
- (void)unlock
释放锁
@interface NSLock
lockBeforeDate:
- (BOOL)lockBeforeDate:(NSDate *)limit
在指定的时间以前得到锁。YES:在指定时间之前获得了锁;NO:在指定时间之前没有获得锁。
该线程将被阻塞,直到获得了锁,或者指定时间过期。
tryLock
- (BOOL)tryLock
视图得到一个锁。YES:成功得到锁;NO:没有得到锁。
setName:
- (void)setName:(NSString *)newName
为锁指定一个Name
name
- (NSString *)name
返回锁指定的Name
TestObj *obj = [[TestObj alloc] init];
- iOS 多线程中锁的使用
- iOS中多线程的使用
- iOS中多线程的使用
- ios中多线程的使用
- iOS中多线程与GCD的使用
- IOS开发中多线程的使用
- iOS多线程中GCD的使用
- iOS多线程的使用
- iOS 多线程的使用
- iOS 多线程中NSOperation使用
- 在IOS中使用多线程
- 多线程中锁的使用
- iOS多线程 - NSThread锁的使用(多线程资源共享的问题)
- 在iOS开发中为什么使用多线程以及多线程的使用
- iOS GCD 多线程的使用
- iOS 多线程GCD的使用
- iOS 多线程的使用情况
- iOS多线程NSOperation的使用
- php 保存图片到服务器
- meansift图像分割
- 游戏框架与通比牛牛
- 安装配置MacTex
- 线程讲解
- iOS 多线程中锁的使用
- shell脚本中一些特殊符号
- UINavigationController 基本用法
- 查看时区文件
- 一大波能提高编程技能的游戏
- scrapy爬取某个手机app的文章数据
- java.util.AbstractCollection学习笔记
- linux(ubuntu)之android开发日记
- centos python tab 补全