日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Runloop - 运行循环

發布時間:2025/4/16 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Runloop - 运行循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

參考文章

  • https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html#//apple_ref/doc/uid/10000057i-CH16-SW23
  • http://blog.ibireme.com/2015/05/18/runloop/
  • http://www.cnblogs.com/zy1987/p/4582466.html

作用

  • 通過 RunLoop 機制實現省電,流暢,響應速度快,用戶體驗好
  • 事件循環偽代碼
function loop() {initialize();do {var message = get_next_message();process_message(message);} while (message != quit); }

特性

  • iOS 中所有的事件監聽全部由運行循環負責
  • 主線程的?RunLoop?在應用啟動的時候就會自動創建
  • 其他線程則需要在該線程下自己啟動
  • 不能自己創建?RunLoop
  • RunLoop 并不是線程安全的,所以需要避免在其他線程上調用當前線程的 RunLoop
  • RunLoop 負責管理?autorelease pools
  • RunLoop 負責處理消息事件,即輸入源事件、計時器事件和網絡請求事情

應用場景

  • 創建常駐線程,執行一些會一直存在的任務。該線程的生命周期跟?App?相同
@autoreleasepool {NSLog(@"%@", [NSThread currentThread]);NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; // 只有添加端口后,才能能夠保證運行循環持續運行 [runLoop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode]; [runLoop run]; // 線程結束之前,不會執行至此 NSLog(@"%@", [NSThread currentThread]); }
  • 維護線程的生命周期,讓線程不自動退出,isFinished?為?Yes?時退出
  • 在一定時間內監聽某種事件,或執行某種任務的線程

轉載于:https://www.cnblogs.com/chzheng/p/5949339.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Runloop - 运行循环的全部內容,希望文章能夠幫你解決所遇到的問題。

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