pthread_join函数

时间:2022-07-24
本文章向大家介绍pthread_join函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、pthread_join函数介绍:

函数pthread_join用来等待一个线程的结束,线程间同步的操作。头文件 : #include <pthread.h> 函数定义: int pthread_join(pthread_t thread, void **retval); 描述 :pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。 参数 :thread: 线程标识符,即线程ID,标识唯一线程。retval: 用户定义的指针,用来存储被等待线程的返回值。 返回值 : 0代表成功。 失败,返回的则是错误号。 二、使用实例。 1、实例代码:

#include <pthread.h>
   #include <stdlib.h>
   #include <unistd.h>
   #include <stdio.h>
 void *thread_function(void *arg) {
  int i;
  for ( i=0; i<8; i++) {
    printf("Thread working...! %d n",i);
    sleep(1);
  }
  return NULL;
}
int main(void) {
  pthread_t mythread;
  
  if ( pthread_create( &mythread, NULL, thread_function, NULL) ) {
    printf("error creating thread.");
    abort();
  }
  if ( pthread_join ( mythread, NULL ) ) {
    printf("error join thread.");
    abort();
  }
  printf("thread done! n");
  exit(0);
}

二、编译。 用gcc thread.c -o thread.o -pthread 编译生成thread.o 三、执行。 用./thread.o 命令执行。