#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
//线程1的启动函数
void *threaddeal1(void *arg)
{
printf("thread 1 returning\n");
return((void *)1);
}
//线程2的启动函数
void *threaddeal2(void *arg)
{
printf("thread 2 exiting\n");
pthread_exit((void *)2);
}
//主函数
int main(int argc,char *argv[])
{
int err;
pthread_t threadid1, threadid2;
void *tret;
//创建线程1
err = pthread_create(&threadid1, NULL, threaddeal1, NULL);
if (err != 0) //创建线程1失败
{
printf("创建线程1失败,错误为: %s\n", strerror(err));
}
//创建线程2
err = pthread_create(&threadid2, NULL, threaddeal2, NULL);
if (err != 0)
{
printf("创建线程2失败,错误为: %s\n", strerror(err));
}
//阻塞线程1
err = pthread_join(threadid1, &tret);
if (err != 0)
{
printf("阻塞线程1失败,错误为: %s\n", strerror(err));
}
//退出并且打印线程1的退出状态
printf("线程1的退出码为 %d\n", (int)tret);
//阻塞线程2
err = pthread_join(threadid2, &tret);
if (err != 0)
{
printf("阻塞线程2失败,错误为: %s\n", strerror(err));
}
//退出并且打印线程2的退出状态
printf("线程2的退出码为 %d\n", (int)tret);
exit(0);
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。