多线程
2016-04-06 本文已影响21人
韩七夏
1.------------NSThread-----------
1>开线程的几种方式
*先创建,后启动
NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(run) object:nil];
[thread start];
*直接启动
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
[self performSelectorInbackground:@selector(run) withObject:nil];
2>其他用法
NSThread *current = [NSThread currentThread];
+ (NSThread *)mainThread;//获得主线程
3>线程间通信
performSelectorOnMainThread...
2.---------GCD(重点)-----------
1>队列的类型
*并发队列
获得全局的并发队列dispatch_get_global_queue
*串行队列
a.自创建
dispatch_queue_create
b.主队列
dispatch_get_main_queue
2>执行任务的方法类型
*同步(sync)执行
*异步(async)执行
3>了解队列和方法的配合使用
4>线程间通信
5>其他用法
dispatch_once
dispatch_after
dispatch_group_async\dispatch_group_notify