从品牌网站建设到网络营销策划,从策略到执行的一站式服务
NSObject的多线程方法
创新互联是一家集网站建设,临朐企业网站建设,临朐品牌网站建设,网站定制,临朐网站建设报价,网络营销,网络优化,临朐网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。NSObject提供了一些多线程的方法,这些方法使用简单而且量级轻,但无法对线程进行必要的控制,所以并不推荐使用。
开启后台执行任务的方法
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
在后台线程中通知主线程执行任务的方法
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
多线程中的资源竞争
并发编程中许多问题的根源就是在多线程中访问共享资源,资源可以是一个属性、一个对象、网络设备或者一个文件等
在多线程中共享的资源被称作临界资源,访问了临界资源的那一部分代码被称作临界区
有临界区出现,就可能是一个潜在的冲突点,需要程序员精心去设计防止潜在的冲突发生。
在多线程开发中,如果访问了临界资源(共享资源),由于线程运行切换的时机问题可能会导致得到的结果是错误的。
在争夺临界资源时,可以使用互斥锁将临界区锁住,方法是使用@synchronized。
还有一种保护属性setter方法的原子操作是,在@property中制定atomic关键字,即在使用setter方法时,将其锁住。
在iOS开发中,不建议使用@synchronized和atomic(代价非常大),也就是说尽量不要去抢夺资源
正是出于性能的考虑,UIKit框架的绝大部分类都不是线程安全的,所以苹果才要求更新UI的操作一定要放到主线程去做
RunLoop机制
提供了一种异步执行代码的机制,不能并发执行任务
在主队列中,MainRunLoop直接配合任务的执行,负责处理UI事件、计数器、以及其他内核相关事件。
RunLoop的主要目的是保证线程不会被系统终止
工作特点:
当有事件发生时,Run Loop会根据具体的事件类型通知应用程序做出响应
当没有事件发生时,Run Loop会进入休眠状态,从而达到省电的目的
当事件再次发生时,Run Loop会被重新唤醒,处理事件
iOS程序主线程设置了RunLoop,其他线程没有设置
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图