runtime和runloop的個人理解
RunTime簡稱運行時。就是系統在運行的時候的一些機制,其中最主要的是消息機制。對於C語言,函數的調用在編譯的時候會決定調用哪個函數( C語言的函數調用請看這裏 )。編譯完成之後直接順序執行,無任何二義性。OC的函數調用成為消息發送。屬於動態調用過程。在編譯的時候並不能決定真正調用哪個函數(事實證明,在編譯階段,OC可以調用任何函數,即使這個函數並未實現,只要申明過就不會報錯。而C語言在編譯階段就會報錯)。只有在真正運行的時候才會根據函數的名稱找到對應的函數來調用。
沒有runloop程序就啟動不了
RunLoop運行循環 讓線程一直處於運行狀態,當有事件的時候,激活線程並處理事件,沒有事件的時候讓線程處於休眠狀態節約cpu提高程序性能。主線程的runloop默認創建,子線程需要主動創建。
什麽情況下用runloop,定時器nstimer 和某些特定的函數;nstimer在主線程中執行就不需要自己創建runloop,在非主線程中執行就需要手動開啟runloop,否則子線程執行完了之後就就退出線程,導致定時器沒法正常工作;perfomselector(消息傳遞),延時操作
runtime和runloop的個人理解
相關推薦
runtime和runloop的個人理解
二義性 程序 個人理解 cto 就會 語言 vps 主動 啟動不了 RunTime簡稱運行時。就是系統在運行的時候的一些機制,其中最主要的是消息機制。對於C語言,函數的調用在編譯的時候會決定調用哪個函數( C語言的函數調用請看這裏 )。編譯完成之後直接順序執行,無任何二義性
MVC和三層架構的個人理解
mod bll 得到 www 中間 物理 交互 .cn fonts 一直以為MVC就是三層,最近通過.net的學習才知道,三層架構是指表示層(UI),業務邏輯層(BLL)和數據訪問層(DAL) ,UI負責與用戶的交互,DAL負責訪問數據(其實是操作model,model對應
jsp九個內置對象和四個作用域的個人理解
服務 應對 有效 bsp 一個用戶 返回 out ica page jsp中九大內置對象和四個作用域:(application,應用程序對象session,會話對象request,請求對象response,響應對象page,當前頁面對象pageContext,頁面上下文對象
rsync 和 配置及個人理解
rsyncrsync 是一款開源的,快速的,多功能的。可實現全量和增量的本地或遠程數據同步的優秀工具。rsync的工作場景: 1》兩臺服務器之間的數據同步,cron+rsync 2》把所有的客戶服務器數據同步到備份服務器rsync的工作方式: 1》單個主機本地之間的數據傳輸(類似於cp命令)
關於js的同步和非同步,個人理解
之前對JS的同步和非同步一直搞不清楚,今天看了些文章,談談自己的理解。 非同步函式往往是有等待性質的函式,主流程在執行到等待的時候,為了提高效率,就把這個函式掛起了,放進一個等待的佇列。接著主程式繼續執行後面的函式。 一直執行到主程式佇列裡的函式執行完畢,這時主程式再去查詢等待佇列裡哪個程式等待
關於正向代理和反向代理的個人理解
因為工作中有接觸到nginx代理伺服器部署相關的工作,一開始我是拒絕的,後來也是上網查詢各種大佬的解釋才漸漸頓悟,下面居來總結一下我個人歸納出來的適合新手理解的說明。 就這張圖做一下說明,圖1為正向代理,客戶端發起一個請求,假設訪問某個網址,通常是通過域名訪問,這個域名通常也會指向某個IP
我的mqtt協議和emqttd開源專案個人理解(25) - 協議裡面Clean Session為0和1的區別
一、基本概念 Session 會話 定義 定義:某個客戶端(由ClientID作為標識)和某個伺服器之間的邏輯層面的通訊 生命週期(存在時間):會話 >= 網路連線 CleanSession 標記 在Connect時,由客戶端設定 0 —
cocos中的觀察者模式 以及"點選事件"的註冊和分發(個人理解)
一、控制元件的點選事件註冊與完成 在學習cocos引擎時,感覺觸控事件用的比較頻繁。 於是對各種觸控事件做一些小小的總結: cocos中的控制元件(按鈕,精靈,各種容器等)。在實際開發中發現他們都是可以新增點選事件的,可以通過設定setTouchEnabled()來開啟點
Django 實現搜尋功能、分頁功能和個人理解
最近在研究django的功能,分頁功能根據官方文件可以簡單的實現,但是如果配合上搜尋,對搜尋結果分頁就要稍微費點周折。 話不多少,先上程式碼。 一、搜尋配合分頁 # 獲取、判斷並封裝關keyword鍵搜尋 kw = request.GET.get("keyword",
java中關於繼承、多型和封裝的個人理解
super:子類中呼叫父類的普通方法或成員變數 構造方法的第一句總是:super(...)來呼叫父類相應的構造方法。流程是:先向上追溯到Object,然後再依次向下執行類的初始化塊和構造方法,直到當前子類為止。(注:靜態初始化塊呼叫順序,與構造方法呼叫順序一樣) java的三
關於子類訪問和修改父類屬性值的網上答案搜查+個人理解
java 怎樣永久改變父類中公有屬性的值 不太明白你要說什麼,類中的屬性一般都是private?,保證封裝性,如果你要用public?,也沒任何問題。你要在子類中該父類的屬性,不是有getter和setter?的方式改啊。 格外說一句面向物件是把所有的都看成一個物件,你肯定是子類例項化,傳參的時候可以用g
堆和棧的個人理解
在瞭解堆和棧的概念之前,首先明確下資料型別的分類。 基本資料型別:Number、String、Boolean、undefined、null 引用資料型別:Object 其中基本資料型別存放在棧中,而
個人對於陣列和緩衝區的理解
參考文章:http://blog.csdn.net/zhangyuan19880606/article/details/51162096 概念上,緩衝區是包在一個物件內的基本資料元素陣列。Buffer類相比一個簡單陣列的優點是它將關於資料的資料內容和
InnoDB中事務隔離級別和鎖的關係 思路?個人理解?
1 資料庫遵循兩段鎖協議,加鎖階段和解鎖階段,在對任何資料進行讀操作之前要申請並獲得S鎖,在寫操作之前要申請並獲得X鎖 2 事務中的加鎖方式,事務的四種隔離級別,未提交讀,已提交讀(RC),可重複讀(RR),可序列化,各種隔離級別
個人理解關於GRU和LSTM之間的區別和聯絡
首先通過公式我認為GRU(“Learning Phrase Representations using RNN EncoderDecoder for Statistical Machine Translation”)裡的h與LSTM裡的C是非常類似的,與之相對應的是GRU裡的
JSONObject和JSONArray總結,個人理解
本人Android新手,如有缺漏,請高手們指導指導 1.JSON簡介 JSON指的是JavaScript物件表示法(JavaScript Object Notation),它是一種輕量級的文字交換格
Linux 對處理器實體地址/虛擬地址和ioremap函式的個人理解
寫在前面 在Linux驅動學習過程中,遇到了ioremap這個函式,引數是phy_addr,返回值是虛擬地址。 linux啟動以後,由於mmu的存在,想要控制暫存器,要找到暫存器實體地址的虛擬地址對映(聽著比較拗口)。 前幾天遇到了一個問題,手上的板子是
關於while和do while 的個人理解
才會 進入 第一次 ++ pri 運行 system 一次 spa 先上代碼 int x=425; System.out.println("循環開始,我的初始值為:x="+x); //425 do { System.out.println("進
個人理解 java虛擬機器中的符號引用和直接引用
在java中,一個java類將會編譯成一個class檔案。在編譯時,java類並不知道引用類的實際記憶體地址,因此只能使用符號引用來代替。比如org.simple.People類引用org
js中的同步和非同步的個人理解
你應該知道,javascript語言是一門“單執行緒”的語言,不像java語言,類繼承Thread再來個thread.start就可以開闢一個執行緒,所以,javascript就像一條流水線,僅僅是一條流水線而已,要麼加工,要麼包裝,不能同時進行多個任務和流程。 那麼這裡說