久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    iOS中的Runloop

     求知665 2015-08-03

        Runloop是事件接收和分發機制的一個實現。

        Runloop提供了一種異步執行代碼的機制,不能并行執行任務。

        在主隊列中,Main RunLoop直接配合任務的執行,負責處理UI事件、定時器以及其他內核相關事件。

    RunLoop的主要目的:

        保證程序執行的線程不會被系統終止。   

    什么時候使用Runloop ?

        當需要和該線程進行交互的時候才會使用Runloop.

        每一個線程都有其對應的RunLoop,但是默認非主線程的RunLoop是沒有運行的,需要為RunLoop添加至少一個事件源,然后去run它。

        一般情況下我們是沒有必要去啟用線程的RunLoop的,除非你在一個單獨的線程中需要長久的檢測某個事件。

        主線程默認有Runloop。當自己啟動一個線程,如果只是用于處理單一的事件,則該線程在執行完之后就退出了。所以當我們需要讓該線程監聽某項事務時,就得讓線程一直不退出,runloop就是這么一個循環,沒有事件的時候,一直卡著,有事件來臨了,執行其對應的函數。

        Runloop,正如其名所示,是線程進入和被線程用來響應事件以及調用事件處理函數的地方。需要在代碼中使用控制語句實現run loop的循環,也就是說,需要代碼提供while 或者 for循環來驅動run loop。

        在這個循環中,使用一個Runloop對象[NSRunloop currentRunloop]執行接收消息,調用對應的處理函數。

        Runloop接收兩種源事件:input sources和timer sources。

        input sources 傳遞異步事件,通常是來自其他線程和不同的程序中的消息;

        timer sources(定時器) 傳遞同步事件(重復執行或者在特定時間上觸發)。

        除了處理input sources,Runloop 也會產生一些關于本身行為的notificaiton。注冊成為Runloop的observer,可以接收到這些notification,做一些額外的處理。(使用CoreFoundation來成為runloop的observer)。

    Runloop工作的特點:

        1> 當有事件發生時,Runloop會根據具體的事件類型通知應用程序作出響應;

        2> 當沒有事件發生時,Runloop會進入休眠狀態,從而達到省電的目的;

        3> 當事件再次發生時,Runloop會被重新喚醒,處理事件。

    提示:一般在開發中很少會主動創建Runloop,而通常會把事件添加到Runloop中。



      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 4hu44四虎www在线影院麻豆| 亚洲中文字幕无线无码毛片 | 久久婷婷国产剧情内射白浆 | 小嫩批日出水无码视频免费| 第一精品福利导福航| 久久精品国产亚洲AV瑜伽 | 国产一精品一AV一免费爽爽| 少妇人妻无码专区视频| 国产精品中文字幕视频| 制服丝袜美腿一区二区| 中文字幕无码午夜场| 华人在线亚洲欧美精品| 成人无码视频97免费| 欧美人妻在线一区二区| 免费人成再在线观看网站| 两个人的WWW免费高清视频| 国产精品中文字幕二区| 欧美日韩一区二区综合| 久久人人爽人人人人片AV| 大香伊蕉在人线国产最新2005| 亚洲午夜性猛春交XXXX| 亚洲午夜无码久久久久蜜臀av| 国产男人的天堂在线视频| 亚洲AV永久无码精品主页| 亚洲爆乳WWW无码专区| WWW夜插内射视频网站| 成年在线观看免费人视频| 久久婷婷五月综合尤物色国产| 九九在线精品国产| 国产V亚洲V天堂A无码| 免费网站看V片在线毛| 亚洲AV日韩AV不卡在线观看 | 亚洲熟女乱色一区二区三区| 亚洲精品一区二区天堂| 亚洲精品无码你懂的| 亚洲成人av在线高清| 人妻久久久一区二区三区| 东京一本一道一二三区| 国内精品久久久久影院网站| 国内精品久久久久久久影视| 人妻系列无码专区免费|