linux-Mac-ios的线程创建相关

 

Mac 线程创建:

pthread_t*          pThreadHandle;       

创建线程:
//为每个线程分配内存,pthread_t 数据结构用来存储线程的专有信息
//当你声明的是线程指针的时候一定要记得malloc,否则pthread_create会崩溃;
pThreadHandle = (pthread_t*)malloc(sizeof(pthread_t));
//runthread一般是一个静态函数,所以要访问类(非静态)成员你要使用到this指针;
int err = pthread_create(pThreadHandle, NULL, runThread, this);


//-----------runthread的声明---Wrapper类的私有静态成员函数----------

 static void*runThread(void* pUser);  //pthread_create的第四个参数,也就是上边的this,就是这个runthread的puser参数



//---------------线程实现------------------------------------ void* Wrapper::runThread(void* puser)//
pthread_create中的this就是这个puser
{
  
if (puser)
  { Wrapper* pThis =(Wrapper*)puser;
pThis->plFun();
}
return nullptr;
}
-------------------------------------------------
int Wrapper::plFun()
{
    while(***)
    {
         //do something
    }
}

销毁的时候记得 free(
pThreadHandle);pThreadHandle = null;

 

posted on 2022-05-12 14:27  邗影  阅读(61)  评论(0)    收藏  举报

导航