#include <stdio.h>
#include <pthread.h>
// 线程的工作函数
void *worker(void *v)
{
// pthread_self是一种函数,功能是获得线程自身的ID。
printf ("线程ID为:%ld\n", pthread_self());
sleep(3);
long num = 10;
// return (void *)num;
// return "Hello";
// 参数为线程的返回值
// 调用此函数,线程立即结束
pthread_exit("Hello");
}
// 创建线程
int main()
{
pthread_t thread;
int ret = pthread_create(&thread, NULL, worker, NULL);
if (0 != ret)
{
printf ("创建线程失败!\n");
return -1;
}
printf ("等待线程退出!\n");
// 1
// 等待线程退出
// int pthread_join(pthread_t thread, void **retval);
// pthread_join(thread, NULL);
// 2
// 宿sum是一个局部变量,把sum的地址传过去
// long sum;
// pthread_join(thread, (void**)&sum);
char *buf;
// 第一个参数:线程ID
// (void**)&buf:一级指针void *p &p 线程结束时把指针值赋值给*p
// 线程等待
pthread_join(thread, (void**)&buf);
// printf ("主线程处理了一个线程,返回值为:%ld\n", sum);
printf ("主线程处理了一个线程,返回值为:%s\n", buf);
return 0;
}
线程结束
最新推荐文章于 2021-10-13 15:05:13 发布