//启动线程
// [NSThread detachNewThreadSelector:@selector(downloadImage:) toTarget:self withObject:ImageURL];
dispatch_queue_t newThread = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(newThread, ^{
[self downloadImage:ImageURL];
});
// [NSThread detachNewThreadSelector:@selector(downloadImage:) toTarget:self withObject:ImageURL];
dispatch_queue_t newThread = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(newThread, ^{
[self downloadImage:ImageURL];
});
1、你使用global队列可能会导致分派时间过长。由于global队列中可能会含有较多的系统队列。
2、dispatch_async调度本身是有开销的,因此你把[activity startAnimating];放在最上面是不妥的。最好的方式是用一个标志,等待download这个函数所处的核被激活后调。
3、NSThread的方式或许能做更快的切换,因为ARMv6或更高版本的处理器都提供了非常强大的线程切换机制。但是NSThread不会采取多核的分派,因为这个系统接口首先要保证的是用户线程的可靠性。
而Grand Central Dispatch显式地利用分派队列来做多核分派调度,因此如果是在多核处理器上的话用G_C_D更快。
如果你的处理器是单核心的话,那么可以使用切换更快的NSThread。
转自:http://blog.sina.com.cn/s/blog_5102c03601011zdr.html
相关推荐
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ // [NSThread sleepForTimeInterval:1]; CustomUploadQueue *upQueue = [[CustomUploadQueue alloc] init]; upQueue....
dispatch_async(dispatch_get_main_queue(), ^(void) { if([self running]) [self stopAudio]; while([self running]) { [NSThread sleepForTimeInterval:10]; //wait for finish } [self playAudio]; }...
iOS面试题-----多线程相关之GCD、死锁、dispatch_barrier_async、dispatch_group_async、Dispatch Semaphore 9、2019 iOS面试题-----多线程相关之NSOperation、NSOperationQueue、NSThread+runloop实现常驻线程、...
IOS应用源码——NSThread.zip
该demo详细解释了gcd NSThread NSOperationQueue的用法.详细解释了子线程中如何刷新UI
NSThread GCD的例子代码。这是一个针对初学者的好代码啊。
别人的,共享给大家,是介绍NSThread的使用,对源码编写这表示感谢
NSThread 线程的创建,交互,及常用的方法
NSThreadDemoOne: 简单使用多线程,区分有多线程和没有多线的区别 NSThreadDemoTwo: 因为NSThread只能传一个一个参数,如果咬传递多个参数,使用封装对象 传一个对象然后自己分解; 也可以指定某个线程优先执行 ...
下面小编就为大家分享一篇iOS NSThread和NSOperation的基本使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
NULL 博文链接:https://iaiai.iteye.com/blog/2143135
NSThread下载图片
在iOS开发中,多线程的实现方式主要有三种,NSThread、NSOperation和GCD,我前面博客中对NSOperation和GCD有了较为详细的实现,为了学习的完整性,今天我们主要从代码层面来实现NSThread的使用。案例代码上传至 ...
今天写这个demo就是为了理解多线程的概念并记录下一些NSThread的基本操作。总共开启了3个子线程,其中两个线程陷入死循环模拟耗时操作,并由bool变量run控制同步更新UI操作。另外一个线程则实现了从网上下载图片并将...
iOS多线程,四种实现方式中最简单的两种pthread,NSThread的用法介绍。
iOS多线程开发NSThread.pdf
IOS多线程编程NSThread的使用方法 NSThread是多线程的一种,有两种方法创建子线程 (1)优点:NSThread 比GCD、NSOperation都轻量级 (2)缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有...
swift NSThread线程同步买票小例子