ios线程-创建及通信
来源:互联网 发布:配置java环境变量 编辑:程序博客网 时间:2024/06/05 04:18
创建、启动线程;
(1) NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
[thread start]; // 线程一启动,就会在线程thread中执行self的run方法
(2)创建线程后自动启动线程:[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
3)隐式创建并启动线程: [self performSelectorInBackground:@selector(run) withObject:nil];//子线程在后台运行
获得当前线程: NSThread *current = [NSThread currentThread];
+ (NSThread *)mainThread; // 获得主线程
- (BOOL)isMainThread; // 是否为主线程
+ (BOOL)isMainThread; // 是否为主线程
线程的调度优先级:调度优先级的取值范围是0.0 ~ 1.0,默认0.5,值越大,优先级越高:
+ (double)threadPriority;
+ (BOOL)setThreadPriority:(double)p;
设置线程的名字:
- (void)setName:(NSString *)n;
- (NSString *)name;
线程间通信常用方法:
//给主线程传的方法名,参数,是否阻塞
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
//给指定线程传的方法名
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait;
waitUntilDone是YES的话,子线程结束后 会阻塞主线程 走callBack方法
如果是NO的话 就不会阻塞 主线程
@synchronized:加锁
线程阻塞:
[NSThread sleepForTimeInterval:2.0];
//第二种设置线程阻塞2,以当前时间为基准阻塞4秒
NSDate *date=[NSDate dateWithTimeIntervalSinceNow:4.0];
[NSThread sleepUntilDate:date];
34 NSURL *urlstr=[NSURL URLWithString:@"fdsf"];35 36 //把图片转换为二进制的数据37 NSData *data=[NSData dataWithContentsOfURL:urlstr];//这一行操作会比较耗时38 39 //把数据转换成图片40 UIImage *image=[UIImage imageWithData:data];
- ios线程-创建及通信
- iOS开发多线程创建及线程间通信
- iOS线程间通信
- iOS线程通信
- IOS线程间通信
- iOS线程间通信
- iOS线程通信
- iOS 08-线程通信
- 线程、进程及线程通信
- synchronized 及 线程通信
- iOS多线程学习---控制线程通信及线程使用的总结
- ios创建并发线程
- [iOS-GQiang]创建线程
- ios 线程的创建
- 创建线程及线程池
- iOS之线程间通信
- iOS之线程间通信
- iOS之线程间通信
- HDU 5414 字符串
- uva1584_水题(环状串的处理)
- mysql安装 编码设置 远程访问
- HDOJ 2041 超级楼梯 (打表法)
- HDOJ 2199 Can you solve this equation? (二分法)
- ios线程-创建及通信
- 事件
- 微信 开发 总结
- hdu 4300 Clairewd’s message
- C语言编程判断一个数是否为素数
- Nim-字符串编码转换
- Rotate Array [LeetCode]
- Mysql之多实例my.cnf
- Javascript书籍推荐----(步步为赢)