runloop的實現(xiàn)原理和數(shù)據(jù)結(jié)構(gòu),什么時候會用到?

2025-02-07 08:26

1個回答

Run loops是線程的基礎(chǔ)架構(gòu)部分。一個run loop就是一個事件處理循環(huán),用來不停的調(diào)配工作以及處理輸入事件。使用run loop的目的是使你的線程在有工作的時候工作,沒有的時候休眠。Run loop的管理并不完全是自動的。你仍必須設(shè)計你的線程代碼以在適當(dāng)?shù)臅r候啟動run loop并正確響應(yīng)輸入事件。Cocoa和CoreFundation都提供了run loop對象方便配置和管理線程的run loop。你創(chuàng)建的程序不需要顯示的創(chuàng)建run loop;每個線程,包括程序的主線程(main thread)都有與之相應(yīng)的run loop對象。但是,自己創(chuàng)建的次線程是需要手動運(yùn)行run loop的。在carbon和cocoa程序中,程序啟動時,主線程會自行創(chuàng)建并運(yùn)行run loop。接下來的部分將會詳細(xì)介紹run loop以及如何為你的程序管理run loop。關(guān)于run loop對象可以參閱sdk文檔。解析Run Looprun loop,顧名思義,就是一個循環(huán),你的線程在這里開始,并運(yùn)行事件處理程序來響應(yīng)輸入事件。你的代碼要有實現(xiàn)循環(huán)部分的控制語句,換言之就是要有while或for語句。在run loop中,使用run loop對象來運(yùn)行事件處理代碼:響應(yīng)接收到的事件,啟動已經(jīng)安裝的處理程序。Run loop處理的輸入事件有兩種不同的來源:輸入源(input source)和定時源(timer source)。輸入源傳遞異步消息,通常來自于其他線程或者程序。定時源則傳遞同步消息,在特定時間或者一定的時間間隔發(fā)生。兩種源的處理都使用程序的某一特定處理路徑。圖1-1顯示了run loop的結(jié)構(gòu)以及各種輸入源。輸入源傳遞異步消息給相應(yīng)的處理程序,并調(diào)用runUntilDate:方法退出。定時源則直接傳遞消息給處理程序,但并不會退出run loop。

相關(guān)問答
一些數(shù)據(jù)結(jié)構(gòu)題 求高手解答
1個回答2022-08-17 09:36
才這么點分?jǐn)?shù)啊
求解數(shù)據(jù)結(jié)構(gòu)題!
1個回答2022-12-26 10:46
無正規(guī)算術(shù)隨便計算
數(shù)據(jù)結(jié)構(gòu)求大神指點
1個回答2024-09-05 23:16
創(chuàng)建一個臨時數(shù)組,長度等于原數(shù)組 用一指針i指向原數(shù)組頭部,一指針j指向原數(shù)組尾部,i向后掃描,碰到負(fù)數(shù)則從前往后將其依次放入臨時數(shù)組中;j向前掃描,碰到正數(shù)則將其從后往前依次放入臨時數(shù)組中。當(dāng)i到達(dá)...
全文
大學(xué)數(shù)據(jù)庫 數(shù)據(jù)結(jié)構(gòu)的書
1個回答2024-03-16 17:09
數(shù)據(jù)結(jié)構(gòu)好像有C++版本的,以前我讀的是C版本的,應(yīng)該不難。數(shù)據(jù)庫的話,既然搞C++,我覺得你可以考慮mysql
數(shù)據(jù)庫表的物理結(jié)構(gòu)是什么?
1個回答2023-05-28 18:32
就是表的定義結(jié)構(gòu)
考研數(shù)據(jù)結(jié)構(gòu)用哪本書
1個回答2024-08-18 23:55
考研數(shù)據(jù)結(jié)構(gòu)可以用《數(shù)據(jù)結(jié)構(gòu)》《算法與數(shù)據(jù)結(jié)構(gòu)考研試題精析(第2版)》《數(shù)據(jù)結(jié)構(gòu)習(xí)題與解析》等書。 1、《數(shù)據(jù)結(jié)構(gòu)》 清華大學(xué)嚴(yán)蔚敏的這本數(shù)據(jù)結(jié)構(gòu)的教材是國內(nèi)數(shù)據(jù)結(jié)構(gòu)教材的權(quán)威。也是國內(nèi)使...
全文
數(shù)據(jù)結(jié)構(gòu)問題,幫幫忙
1個回答2022-08-24 16:05
看到頭疼~~~呵呵
小說的構(gòu)思怎么構(gòu)思呢,還有小說怎么就不根據(jù)現(xiàn)實就可以來寫,或者根據(jù)任的思維怎么構(gòu)思?
1個回答2022-11-24 03:54
你是想寫小說嗎?構(gòu)思是要看你自己對你想要寫的小說里的故事,大概的一個想法。寫小說的話,當(dāng)然要想象力豐富點。
數(shù)據(jù)結(jié)構(gòu)是什么意思?
3個回答2023-02-16 21:50
簡單的說就是數(shù)據(jù)以及相互之間的聯(lián)系。數(shù)據(jù)之間的相互聯(lián)系,被稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。數(shù)據(jù)在存儲器重的存儲方式稱為數(shù)據(jù)的物理結(jié)構(gòu)。由于存儲方式有順序、鏈接、索引、散列等多種方式。所以一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)應(yīng)用的...
全文
數(shù)據(jù)結(jié)構(gòu)是什么?
1個回答2023-02-09 02:26
定義一、數(shù)據(jù)元素集合(也可稱數(shù)據(jù)對象)中各元素的關(guān)系。 定義二、相互之間存在特定關(guān)系的數(shù)據(jù)元素集合。
熱門問答