您的位置:首页 > 其它

pthread_join函数介绍和使用实例

2017-10-09 17:51 477 查看


   一、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 命令执行。

 四、运行效果如下图:

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: