cocos2dx3 4的多執行緒bug嚴重

2021-07-04 20:38:51 字數 553 閱讀 2184

這幾天發現了兩個bug,都是多執行緒的。

requestlayout();

invalidate();

來重新布局,啟用su***cecreated()方法。

2。非同步載入資源卡死問題。

director::getinstance()->gettexturecache()->addimageasync(texturepath.c_str(), cc_callback_1(dnloadinglayer::loadcallback, this));

在addimageasync中有_sleepcondition.notify_one()通知非同步執行緒載入。

非同步執行緒中如果沒有載入任務,則進入_sleepcondition.wait等待函式。

理論上順序是這樣的,載入完一張後,非同步執行緒中則快速進入_sleepcondition.wait等待函式,但是有時候,機率很小,非同步執行緒並沒有那麼快,主線程則快速傳送乙個非同步載入指令,首先呼叫了_sleepcondition.notify_one()函式,導致非同步執行緒無法得到通知而卡死。

呵呵

cocos2dx3 4原始碼閱讀

objloader loadobj 主要是 exportfacegrouptoshape 這個方法的處理 shapes.normals shapes.texcoords 在updatevertex方法處理過程中儲存的是頂點的資訊 頂點,法線,紋理座標 shapes.shapes.push back ...

cocos2dx 多執行緒

2.加標頭檔案 include pthread pthread.h 直接上 編譯出錯 fatal error c1083 無法開啟包括檔案 sched.h no such file or directory,在pthread的相同目錄下有這個標頭檔案,在專案的屬性中加入這個標頭檔案的路徑就可以了 3...

cocos2d x多執行緒操作

先頭檔案定義 void threada 再在.cpp檔案中新增 1.引入標頭檔案 include std thread t1 login threada,this 取login的位址 t1.detach 主線程和子執行緒互不影響 阻塞主線程 執行子執行緒完了後才執行主線程 cclog first t...