作者:kangear
书籍:《UNIX环境高级编程》以下简称《UNIX书》
《C程序设计(第三版)》以下简称《C书》
这个也是《UNIX书》上的实例的删减版:
thread_exit.c
传源文件: thread_exit.zip
- #include <stdio.h> //printf()
- #include <pthread.h> //pthread_create() pthread_join() pthread_exit()
- #include <unistd.h> //sleep()
- void *create(void *arg)
- {
- printf("new thread is created ... \n");
- return (void *)8;
- }
- int main(int argc,char *argv[]) //主进程
- {
- pthread_t tid;
- int error;
- void *temp;
- error = pthread_create(&tid, NULL, create, NULL); //创建线程(线程处于就绪态)
- printf("main thread!\n");
- if( error )
- {
- printf("thread is not created ... \n");
- return -1;
- }
- error = pthread_join(tid, &temp); //线程从这里开始运行 至结束
- if( error )
- {
- printf("thread is not exit ... \n");
- return -2;
- }
-
- printf("thread is exit code %d \n", (int )temp); //线程结束后的主进程的打印
- return 0;
- }
运行结果:
tu
(《UNIX书》原文)可以看出,当一个线程通过调用pthread_exit退出或者简单地从启动例程中返回时,进程的七大线程可以通过调用pthread_join函数获得该线程的退出状态。
pthread_join(pthread_t thread, void **rval_ptr)
rval_ptr:
就像《非诚勿扰》里边的男嘉宾,只为9号(pthread_exit())而来,正常情况下就是用作退出用的。
阅读(7475) | 评论(0) | 转发(0) |