pthread_detach函数_pthread detach函数

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
using namespace std;

//线程执行函数
void *mythread(void *arg)
{
cout << “child thread, pid==” << getpid() << “, id==” << pthread_self() << endl;
sleep(10);
}

int main()
{
//int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
// void *(*start_routine) (void *), void *arg);
//创建子线程
pthread_t thread;
int ret = pthread_create(&thread, NULL, mythread, NULL);
if(ret!=0)
{
cout << "pthread_create error, " << strerror(ret) << endl;
return -1;
}
cout << “main thread, pid==” << getpid() << “, id==” << pthread_self() << endl;

    //设置线程为分离属性
    pthread_detach(thread);

    //子线程设置分离属性,则pthread_join不再阻塞,立刻返回
    ret = pthread_join(thread, NULL);
    if(ret!=0)
    {

            cout << "pthread_join error, " << strerror(ret) << endl;
    }

    //目的是为了让子线程能够执行起来
    sleep(1);
    return 0;

}


也可以利用pthread\_create的第二个参数设置分离属性,部分核心代码如下:



int main()
{
//定义pthread_attr_t类型的变量
pthread_attr_t attr;

    //初始化attr变量
    pthread_attr_init(&attr);

    //设置attr为分离属性
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

    //创建子线程
    pthread_t thread;
    int ret = pthread_create(&thread, &attr, mythread, NULL);
    if(ret!=0)
    {
            cout << "pthread_create error, " << strerror(ret) << endl;
            return -1;
    }
    cout << "main thread, pid==" << getpid() << ", id==" << pthread_self() << endl;

    //释放线程属性
    pthread_attr_destroy(&attr);

    //验证子线程是否为分离属性
    ret = pthread_join(thread, NULL);
    if(ret!=0)
    {
            cout << "pthread_join error, " << strerror(ret) << endl;
    }

    return 0;

}


运行结果如下:成功的设置了分离属性,调用pthread\_jion失败


        ![](https://img-blog.csdnimg.cn/6c28561c6b0d494aa7d61c26e86691fa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5omn6L-3QysrIOeahOiPnOm4oQ==,size_10,color_FFFFFF,t_70,g_se,x_16)


 





![img](https://img-blog.csdnimg.cn/img_convert/aad927e5f36d8ab5badd5077866e4902.png)
![img](https://img-blog.csdnimg.cn/img_convert/d263e1f7fb1282da06759dad676ece82.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值