日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS底层面试题--RunLoop

發布時間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS底层面试题--RunLoop 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面試題的答案都是拋磚引玉,具體細節還得深入了解iOS底層原理 復制代碼

1、什么是RunLoop?

  • 顧名思義: 1、運行循環,在程序運行過程中循環做一些事情。 2、iOS中有2套API來訪問和使用RunLoop √ Foundation:NSRunLoop √ Core Foundation:CFRunLoopRef 3、NSRunLoop和CFRunLoopRef都代表著RunLoop對象 4、NSRunLoop是基于CFRunLoopRef的一層OC包裝 5、CFRunLoopRef是開源的

  • RunLoop的基本作用: 1、保持程序的持續運行 2、處理App中的各種事件(比如觸摸事件、定時器事件等) 3、節省CPU資源,提高程序性能:該做事時做事,該休息時休息 ......

  • CFRunLoopModeRef √ CFRunLoopModeRef代表RunLoop的運行模式 √ 一個RunLoop包含若干個Mode,每個Mode又包含若干個Source0/Source1/Timer/Observer √ RunLoop啟動時只能選擇其中一個Mode,作為currentMode √ 如果需要切換Mode,只能退出當前Loop,再重新選擇一個Mode進入 √ 不同組的Source0/Source1/Timer/Observer能分隔開來,互不影響 √ 如果Mode里沒有任何Source0/Source1/Timer/Observer,RunLoop會立馬退出 √ kCFRunLoopDefaultMode(NSDefaultRunLoopMode):App的默認Mode,通常主線程是在這個Mode下運行 √ UITrackingRunLoopMode:界面跟蹤 Mode,用于 ScrollView 追蹤觸摸滑動,保證界面滑動時不受其他 Mode 影響

  • 應用范疇: √ 定時器(Timer)、PerformSelector √ GCD Async Main Queue √ 事件響應、手勢識別、界面刷新 √ 網絡請求 √ AutoreleasePool

  • RunLoop在實際開中的應用 √ 控制線程生命周期(線程保活) √ 解決NSTimer在滑動時停止工作的問題 √ 監控應用卡頓 √ 性能優化

2、RunLoop與線程關系?

  • 每條線程都有唯一的一個與之對應的RunLoop對象
  • RunLoop保存在一個全局的Dictionary里,線程作為key,RunLoop作為value
  • 線程剛創建時并沒有RunLoop對象,RunLoop會在第一次獲取它時創建
  • RunLoop會在線程結束時銷毀
  • 主線程的RunLoop已經自動獲取(創建),子線程默認沒有開啟RunLoop

3、RunLoop的運行邏輯?

3.1、各種事件解析

  • Source0 觸摸事件處理 performSelector:onThread:

  • Source1 基于Port的線程間通信 系統事件捕捉

  • Timers NSTimer performSelector:withObject:afterDelay:

  • Observers 用于監聽RunLoop的狀態 UI刷新(BeforeWaiting) Autorelease pool(BeforeWaiting)

3.2、運行邏輯 01、通知Observers:進入Loop 02、通知Observers:即將處理Timers 03、通知Observers:即將處理Sources 04、處理Blocks 05、處理Source0(可能會再次處理Blocks) 06、如果存在Source1,就跳轉到第8步 07、通知Observers:開始休眠(等待消息喚醒) 08、通知Observers:結束休眠(被某個消息喚醒) 01> 處理Timer 02> 處理GCD Async To Main Queue 03> 處理Source1 09、處理Blocks 10、根據前面的執行結果,決定如何操作 01> 回到第02步 02> 退出Loop 11、通知Observers:退出Loop

總結

以上是生活随笔為你收集整理的iOS底层面试题--RunLoop的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人熟女一区二区 | 米奇色| 被扒开腿一边憋尿一边惩罚 | 国产肉体xxxx裸体784大胆 | 国产在线xxxx | 91在线国产观看 | 亚洲婷婷一区 | 秋霞在线视频观看 | 欧美色图亚洲视频 | 国产乱淫av公 | 91嫩草网 | 日本理伦片午夜理伦片 | 老司机深夜福利视频 | 精品偷拍一区 | 性感美女福利视频 | av簧片| 国产第一页屁屁影院 | 日韩精品片 | 亚洲精品一区二区三区影院忠贞 | 成人免费黄色片 | 国产伦理av | 中文 欧美 日韩 | 人人爱av| 日本精品网 | 国产日韩欧美亚洲 | 亚洲精品自拍视频 | 亚洲黄色成人 | 人人干干 | 亚洲欧美在线免费 | 国产精品亚洲AV色欲三区不卡 | 日批视频 | av资源免费观看 | 国产精品18 | 精品久久久久久无码人妻 | 大陆av片 | 九色蝌蚪porny | 日本阿v视频 | 天天爽网站 | 日本高清不卡在线观看 | 国产探花在线精品一区二区 | av网在线播放 | 欧美三区视频 | 综合在线一区 | 久久亚洲成人 | 精品国产aⅴ一区二区三区东京热 | 日本成人在线不卡 | 又黄又刺激的视频 | 亚洲AV无码精品黑人黑人 | 国产l精品国产亚洲区久久 午夜青青草 | 国产一区在线免费观看 | 中文字幕日韩精品在线观看 | 性生交大片免费看3p | 亚洲日本韩国在线 | 亚洲第一国产视频 | 国产又粗又爽视频 | 男女搞黄网站 | 日韩精品一区二区三区在线观看 | 天堂а√在线最新版中文在线 | www.com在线观看 | av国产片| 五月综合激情 | 91精品免费在线 | 黄色成人av在线 | 日韩黄色片在线观看 | av老司机福利 | 综合精品| 动漫美女被到爽 | 亚洲美女性生活 | 日韩不卡 | 中文字幕日韩在线观看 | 蜜桃av影院 | 国产999| 五月天激情在线 | 婷婷激情电影 | wwwxx在线观看 | av午夜在线 | 精品字幕 | 亚洲在线播放 | 成人激情视频网 | 精品在线91 | 李华月全部毛片 | 欧美性网站 | 日日爽日日操 | 人人干干 | 91国偷自产一区二区三区女王 | 韩国av一区二区 | 青青操视频在线 | 黄色无遮挡网站 | 欧美日韩久久 | 国产tv在线观看 | 国产精品伦一区二区 | 免费黄色a | 久久夜色精品亚洲 | 69视频网站| 欧美极品少妇×xxxbbb | 18无码粉嫩小泬无套在线观看 | 午夜精品在线视频 | 国产免费看片 | 欧美一级性生活视频 |