以操作为中心的多任务开发

      很多从其他平台转换过OC的开发者都习惯从线程的角度思考问题.IOS提供封装良好的类支持直接和线程的交互,尤其是NSthread类.但是apple建议使用用操作为中心的多任务.操作就是比线程更强大的抽象,如果可以争取使用的话,可以的到更好更快的代码,线程的创建和维护成本都很高,所以设计使用线程的软件一般都会引入少量的长期存在的线程.,当需要访问大象的如数输出,那就意味着加锁.加锁代价是昂贵的,可能还会导致更多的BUG.


     当从operations中移除所有操作,确保所有挂起的操作都不会更新UI.  NSoperationQueue尝试管理生成线程数,当NSoperationQueue同时调度太多操作,虽然实现了并发的思想,但效率却不是最高,如果明确告诉NSoperationQueue 不要调度超过CPU的数量的计算操作,那么简单的代码就会跑的更快,  把maxconcurrentOperationsCount 设置为CPU 的核心数.从而达到最高效的性能.   确定CPU 的核心数?

   unsigned int ncpu; 

   size_t len = sizeof(ncpu);  

   sysctlbyname("hw.ncpu",&ncpu,&len,NULL, 0 ); 

   NSLog(@"****%d",ncpu);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值