flagship的理想與現(xiàn)實創(chuàng)新+實踐 |
常用鏈接留言簿(8)我參與的團(tuán)隊隨筆分類隨筆檔案搜索最新評論
|
01 2009 檔案
摘要: 現(xiàn)在我們已經(jīng)有了三個可獨(dú)立工作的線程:資源加載線程、邏輯線程、渲染線程,下一步我們需要決定它們?nèi)绾卧趯嶋H的項目中相互配合,也就是所謂的應(yīng)用程序框架了,該框架需要解決以下兩個問題
首先,資源讀取線程可以簡單設(shè)計為一個循環(huán)等待的線程結(jié)構(gòu),每隔一段時間檢查加載隊列中是否有內(nèi)容,如果有則進(jìn)行加載工作,如果沒有則繼續(xù)等待一段時間。這種方式雖然簡單清晰,但卻存在問題,如果等待時間設(shè)得過長,則加載會產(chǎn)生延遲,如果設(shè)得過短,則該線程被喚醒的次數(shù)過于頻繁,會耗費(fèi)很多不必要的CPU時間。 然后,主線程是邏輯線程還是渲染線程?因為邏輯線程需要處理鍵盤鼠標(biāo)等輸入設(shè)備的消息,所以我起初將邏輯線程設(shè)為主線程,而渲染線程另外創(chuàng)建,但實際發(fā)現(xiàn),幀數(shù)很不正常,估計與WM_PAINT消息有關(guān),有待進(jìn)一步驗證。于是掉轉(zhuǎn)過來,幀數(shù)正常了,但帶來了一個新的問題,邏輯線程如何處理鍵盤鼠標(biāo)消息? 閱讀全文
|