類別:Thread
記憶體配置統一管理
類型 | 使用 | 成員 | 說明 |
建構子 | public | ||
解構子 | public | ||
函式 | public | 配置記憶體。 | |
函式 | public | 釋放記憶體。 | |
函式 | public | 記憶體配置區塊數量。 |
建議
所有CIOS Audio Core內部的程式,都被建議使用Allocator來配置及釋放記憶體。C++定義
class Thread
{
public:
int running ;
int StackSize ;
bool Reservation ; // STACK_SIZE_PARAM_IS_A_RESERVATION ;
ThreadData Data ;
std::list<ThreadData *> AllThreads ;
explicit Thread (int stackSize,bool reservation) ;
explicit Thread (void) ;
virtual ~ Thread (void) ;
int setPriority (int priority) ;
virtual void start (void) ;
virtual ThreadData * start (int Type) ;
virtual ThreadData * start (int Type,char * arguments) ;
virtual ThreadData * start (int Type,ThreadFunction ExternalThread) ;
virtual void quit (void) ;
virtual void suspend (void) ;
virtual void resume (void) ;
virtual void terminate (void) ;
virtual void cleanup (void) ;
virtual bool proceed (void) ;
virtual bool finalize (int interval = 20) ;
virtual int exit (int exitcode) ;
void actualRun (void) ;
void actualRun (int Type,ThreadData * data) ;
void actualJoin (void) ;
#if defined(WIN32) || defined(_WIN32)
HANDLE Id (void) ;
#else
pthread_t Id (void) ;
#endif
protected:
virtual void ThreadEvent (void) ;
virtual void run (void) ;
virtual void run (int Type,ThreadData * Data) ;
virtual bool detection (void) ;
virtual bool recycle (void) ;
virtual void DeleteThread (ThreadData * Data) ;
private:
#if defined(WIN32) || defined(_WIN32)
static unsigned int SingleThread (LPVOID arg) ;
static unsigned int MultiThread (LPVOID arg) ;
#else
static void * SingleThread (void * arg) ;
static void * MultiThread (void * arg) ;
#endif
};
範例
配置1024位元的記憶體。
char * buffer ;
buffer = (char *)Allocator::allocate(1024) ;
釋放記憶體。
Allocator::free(buffer) ;