linux C++ pthread线程操作入门

為{幸葍}努か 提交于 2019-12-17 19:12:47

线程操作:
我们要做的1.创建线程
2.线程阻塞 (当线程结束后,主线程才结束)
3.线程返回 (获取线程返回的内容)

// 函数的格式必须是这样的. void* name(void * param)
void *semopFun(void *param)
{
  cout << "NIHao" << endl;
  sleep(1);
  cout<<"thread out"<<endl;
  /*
    线程结束后,传值出去,
    给pthread_join()的参数2
  */
  pthread_exit((void *)1);
}
int main()
{
  pthread_t semop_threadID = NULL;
  pthread_create(&semop_threadID, NULL, semopFun, NULL);
  
  /*
    pthread_join 
    参数1:线程标识符
    参数2:pthread_exit()参数返回
   	如果线程还未运行完毕主线程会被阻塞在此,不再向下执行.
  */
  void *p = NULL;
  pthread_join(semop_threadID, &p);
  cout << "p: " <<(int*) p << endl;
  cout << "OVER" << endl;
  return 0;
}

运行结果:

NIHao
thread out
p: 0x1
OVER
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!