linux c++(线程 & 创建一个线程)

创建一个线程
thread: 线程的id,传出参数
attr:	代表线程的属性
第三个参数函数指针,void *func(void*)
arg:	线程执行函数的参数
返回值:
	成功返回0
	失败返回errno
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);
线程退出函数
pthread_exit
线程退出注意事项
  在线程中使用pthread_exit
  在线程中使用return (主控线程return代表退出进程)
  exit代表退出整个进程
//pthread_self 线程id
void * thrFun(void *arg)
{
      printf("I am thread = %d, tid=%lu\n",getpid(),pthread_self());
      sleep(5);
      printf("I am thread = %d, tid=%lu\n",getpid(),pthread_self());
      return (void*)100;
}
  
int main()
{
      // 创建线程 #include <pthread.h>
      pthread_t tid;
      pthread_create(&tid,NULL,thrFun,NULL);    
      void *ret;
      pthread_join(tid,&ret); //线程回收
      printf("ret exit with %d\n",(int*)ret);                                                    
      pthread_exit(NULL);
}
线程回收函数--阻塞等待回收
int pthread_join(pthread_t thread,void **retval);
	thread 创建的时候传出的第一个参数;
	retval 代表传出线程的退出信息

posted on 2021-05-06 15:26  lodger47  阅读(670)  评论(0)    收藏  举报

导航