http://www.cocoachina.com/bbs/read.php?tid-302464-fpage-9.html
摘自:http://lizhuang.iteye.com/blog/2001272
http://blog.youkuaiyun.com/xunyn/article/details/17251453
下面关于线程管理错误的是()
- GCD在后端管理着一个线程池
- NSOperationQueue是对NSthread的更高层的封装
- NSThread需要自己管理线程的生命周期
- GCD可以根据不同优先级分配线
B是错的,SOperationQueue是对GCD的更高层的封装
C是对的。
// 初始化线程
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
// 设置线程的优先级(0.0 - 1.0,1.0最高级)
thread.threadPriority = 1;
// 开启线程
[thread start];
如果使用系统预设的queue,可以设置DISPATCH_QUEUE_PRIORITY,达到不同的优先级。
C是对的。
// 初始化线程
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
// 设置线程的优先级(0.0 - 1.0,1.0最高级)
thread.threadPriority = 1;
// 开启线程
[thread start];
如果使用系统预设的queue,可以设置DISPATCH_QUEUE_PRIORITY,达到不同的优先级。
小明写了一个基于TCP协议的IOS聊天工具,随着用户数的增多,聊天过程中是不是出现卡顿,程序失去响应的问题,请帮忙分析小明的程序可能出现了什么问题? 如果你是小明的话,如何设计程序结构,保证网络的延迟问题不会影响用户UI操作。
原因分析:TCP协议是基于链接的,虽然能保证数据的准确性,但对资源要求较多。出现卡顿可能是由于资源消耗较多造成。
小明在程序内部没有使用异步线程,导致阻塞主线程
解决办法:开启异步线程进行网络请求(或者使用UDP协议)
采用的协议TCP会在会话传输时,等待数据报,建议采用UDP协议。
程序采用多线程,服务器模型选择非阻塞的select,epoll。
3087

被折叠的 条评论
为什么被折叠?



