多執行緒的實現:
pthreadtest.h
#ifndef __mtnotificationqueue_h
#define __mtnotificationqueue_h
#include "cocos2d.h"
#include #include"pthread\pthread.h"
using_ns_cc;
using namespace std;
//執行緒安全的訊息佇列
class mtnotificationqueue : public ccobject
};static cgarbo garbo;
typedef struct
notificationargs;
//訊息佇列
vectornotifications;
mtnotificationqueue(void);
public:
static mtnotificationqueue* sharednotificationqueue();
void postnotifications(float dt);
~mtnotificationqueue(void);
void postnotification(const char* name, ccobject* object);
};
#endif
pthreadtest.cpp
#include "pthreadtest.h"
//互斥鎖,全域性唯一
pthread_mutex_t sharednotificationqueuelock;
//管理互斥鎖的生命週期
class lifemanager_pthreadmutex
~lifemanager_pthreadmutex()
}__lifemanager_sharednotificationqueuelock(&sharednotificationqueuelock);
//生命週期鎖類,管理鎖開關
class lifecirclemutexlocker
~lifecirclemutexlocker()
};
#define lifecirclemutexlock(mutex) lifecirclemutexlocker __locker__(mutex)
mtnotificationqueue* mtnotificationqueue::minstance = null;
mtnotificationqueue::mtnotificationqueue(void)
mtnotificationqueue::~mtnotificationqueue(void)
//訊息佇列的單例
mtnotificationqueue* mtnotificationqueue::sharednotificationqueue()
return minstance;
}//訊息佇列的處理
void mtnotificationqueue::postnotifications(float dt)
notifications.clear();
} //單個訊息加入
void mtnotificationqueue::postnotification(const char* name, ccobject* object)
backgroundlayer.cpp
#include "backgroundlayer.h"
#include "user.h"
#include"pthreadtest.h"
using_ns_cc;
ccscene* backgroundlayer::scene()
// on "init" you need to initialize your instance
ccimage *bgimage;
void* loadimages(void* arg)
void backgroundlayer::loadimagefinish(ccobject* sender)
bool backgroundlayer::init()
while (0);
return bret;
}
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...
cocos2dx建立執行緒
為了防止程式假死,需要另起執行緒處理網路連線。好吧,那就從建立執行緒開始。這次我的環境是在mac下。在網上查閱和參考了很多資料,感謝這些無私奉獻的前輩們的努力。進入話題。標頭檔案 cpp view plain copy pthread t th socket 起這個名字本打算用在socket上的 i...