您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

IOS多线程面试 <网站代码>

  • 时间:2022-07-17 00:37 编辑: 来源: 阅读:298
  • 扫一扫,手机访问
摘要:IOS多线程面试 <网站代码>
多线程导致的问题有哪些?1.多线程升级一个资源会造成数据竞争(数据不一致:按串行队列处理)。2.停止等待线程可能会导致线程死锁(了解原理后避免这种情况)。3.使用过多的线程会消耗大量的内存,造成大量的上下文切换,大大降低系统的响应性能。多线程开发者要做的就是定义他要执行的任务。并将任务附加到适当的调度队列,调度队列按照附加的顺序(先进先出)执行解决方案。调度队列类型:1:串行调度队列:等待现在正在执行的解决方案结束(同时只能有一个解决方案,只能在一个线程中,)2:并行调度队列:不等待当前正在执行的解决方案结束就创建调度队列(同时可以有多个解决方案,启动一个新线程,在多个线程中执行):1。使用dispatch_queue_create创建队列,例如:dispatch _ queue _ ts erial = dispatch _ queue _ create(" com . serai . queue ",NULL)。dispatch _ queue _ create的第二个参数有两种选择方式,一种是串行,一种是并发。设置为null时,选择serial,可以自己选择。 2.获取系统标准提供的调度队列有四种优先级:主调度队列和全局调度队列:高级、默认、低、使用后端dispatch_set_target_queue: 1。改变队列的优先级,(第一个参数是需要改变执行权的队列,第二个参数是要改变优先级的队列。使用dispatch _ get _ global _ queue(dispatch _ queue _ priority _ background,0)创建)2。设置执行层次(按顺序执行队列)调度组:如果要在多个异步任务执行完之后再执行另一个任务,因为多个任务是异步的,我们不知道最终完成的是哪个任务,所以可以用组的方法执行多个任务执行完之后要执行的方法。如下:dispatch _ queue _ t queue = dispatch _ get _ global _ queue(dispatch _ queue _ priority _ default,0);dispatch _ group _ t group = dispatch _ group _ create();dispatch_group_async(组,队列,^{});dispatch_group_async(组,队列,^{});dispatch_group_async(组,队列,^{});Dispatch _ group _ notify (group,queue,{//此处填写上述任务执行后要执行的方法});di patch _ apply:将函数按照指定的次数追加到队列中,函数将在队列中执行指定的次数,dispatch_apply函数将等待求解完成后再执行dispatch_apply下的代码dispatch_suspend:挂起指定的调度队列dispatch_resume:继续执行指定的调度队列


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部