Cocos2d x pthread庫的使用

2021-09-07 15:30:41 字數 2002 閱讀 6253

pthread庫是乙個跨平台的多執行緒庫。在cocos2d-x中已經整合了該庫。

1.包含標頭檔案

2.鏈結庫檔案

互斥鎖:

//定義互斥鎖

pthread_mutex_t  s_taskqueuemutex;

// 初始化互斥鎖

pthread_mutex_init(&s_taskqueuemutex, null);

//銷毀互斥鎖

pthread_mutex_destroy(&s_taskqueuemutex);

條件變數:

// 定義條件變數

pthread_mutex_ts_sleepmutex;

pthread_cond_ts_sleepcondit

// 初始化條件變數

pthread_mutex_init(&s_sleepmutex, null);

pthread_cond_init(&s_sleepcondition, null);

//銷毀條件變數

pthread_mutex_destroy(&s_sleepmutex);

pthread_cond_destroy(&s_sleepcondition);

條件變數是利用執行緒間共享的

全域性變數進行同步的一種機制,主要包括兩個動作:乙個執行緒等待"條件變數的條件成立"而掛起;另乙個執行緒使"條件成立"(給出條件成立訊號)。為了防止競爭,

條件變數的使用總是和乙個

互斥鎖結合在一起。

執行緒://執行緒id

static pthread_t s_workthread;

//定義執行緒方法

static void* workthread(void *data)

// 建立執行緒

pthread_create(&s_workthread, null, workthread, null);

// 執行執行緒

pthread_detach(s_workthread);

//退出當前執行緒

pthread_exit(null);

[cpp]view plain

copy

//包含標頭檔案  

#include 

//執行緒id  

static pthread_t s_workthread;  

static void* workthread(void *data)     

//退出當前執行緒  

pthread_exit(null);  

return 0;  

}  // 建立執行緒  

pthread_create(&s_workthread, null, workthread, null);  

// 執行執行緒  

pthread_detach(s_workthread);         

}  

呼叫**如下:

[cpp]view plain

copy

this->threadtest();  

cclog("main thread running..");  

日誌輸出如下:

從日誌可以看到「main thread running"先被輸出了,也就是說theadtest()方法中建立和執行的執行緒方法並沒有阻塞主線程**的執行。

cocos2dx CCScrollView使用示例

總的來說,就是有乙個容器container 錨點 0,0 大小 為全部內容的大小 scrollview 大小,錨點,setdelegate 視窗大小 setviewsize 設定容器 setcontainer 方向 ccnode m pmedalcontainer ccscrollview m ps...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

Cocos2d x教程第 14 講 Cocos2d

cocos2d x 2.2.0之前的版本常用的json解析的三方庫一般是 jsoncpp 2.2.x的版本中已經包含了jsoncpp的庫,但是卻把名字給換了,導致引入jsoncpp庫的同志們發生各種衝突.完成上述操作後就可以盡情發揮了.下面讓我們來認識一下幾個主要的類 value value 類建立...