多线程常用方法总结
2016-06-06 12:26
274 查看
NSThread
开线程的三种方法
1. [[NSThread alloc]initWithTarget:self selector:@selector(run:) object:@"dd"] 2. [self performSelectorInBackground:@selector(run:) withObject:@"dd"] 3. [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"dd"]
object是run函数的参数。
GCD
创建队列
1. dispatch_queue_t queue = dispatch_get_main_queue();//获得主线程串行队列 2. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);//获得全局并发队列 3. dispatch_queue_t queue = dispatch_queue_create("aaa", DISPATCH_QUEUE_CONCURRENT);//创建一个新队列,第一个参数为唯一标识符,第二个是指定队列是并发还是串行
添加任务
1. dispatch_async(queue, ^{ NSLog(@"----下载图片1----%@", [NSThread currentThread]); });//添加异步任务 2. dispatch_sync(queue, ^{ NSLog(@"----下载图片2----%@", [NSThread currentThread]); });//添加同步任务
NSOperation
三种添加任务的方法
1. NSBlockOperation *operation = [[NSBlockOperation alloc]init]; [operation addExecutionBlock:^{ NSLog(@"----下载图片1----%@", [NSThread currentThread]); }]; 2. NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"----下载图片2----%@", [NSThread currentThread]); }]; 3. NSInvocationOperation *operation1 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(run:) object:@"aaa"];
队列
1. NSOperationQueue *queue = [[NSOperationQueue alloc]init];//初始化队列 2. queue.maxConcurrentOperationCount = 2;//设置当前最大操作数 3. [operation addDependency:operation1];//设置操作依赖 4. [queue addOperation:operation];//队列添加操作
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- C#实现多线程的同步方法实例分析
- 浅谈chuck-lua中的多线程
- C#简单多线程同步和优先权用法实例
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- C#多线程编程中的锁系统(三)
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- C#多线程学习之(六)互斥对象用法实例
- 基于一个应用程序多线程误用的分析详解
- C#多线程学习之(三)生产者和消费者用法分析
- C#多线程学习之(一)多线程的相关概念分析
- C#多线程之Thread中Thread.IsAlive属性用法分析
- 分享我在工作中遇到的多线程下导致RCW无法释放的问题
- C#多线程编程之使用ReaderWriterLock类实现多用户读与单用户写同步的方法
- C#控制台下测试多线程的方法
- 21天学习android开发教程之SurfaceView与多线程的混搭
- Ruby 多线程的潜力和弱点分析
- C#中WPF使用多线程调用窗体组件的方法
- C#如何对多线程、多任务管理(demo)
- C#实现多线程的Web代理服务器实例