#include <stdio.h>
void* thread_func(void* arg) {
printf(“Hello from the detached thread!\n”);
return NULL;
}
int main() {
pthread_t thread;
// 创建线程
if(pthread_create(&thread, NULL, thread_func, NULL)) {
fprintf(stderr, “Error creating thread\n”);
return 1;
}
// 将线程设置为分离状态
if(pthread_detach(thread)) {
fprintf(stderr, “Error detaching thread\n”);
return 2;
}
// 主线程执行
printf(“Hello from the main thread!\n”);
// 主线程休眠一段时间,以确保分离线程有足够的时间运行
sleep(1);
return 0;
}
在这个例子中,我们创建了一个线程并立即将其设置为分离状态。主线程并没有调用`pthread_join`来等待这个线程,因为分离的线程在结束时会自动清理它们自己。
需要注意的是,你只能分离一个线程一次。如果一个线程已经被分离,或者已经被另一个线程回收(通过`pthread_join`),那么尝试再次分离这个线程将会导致未定义的行为。
需要注意对于线程相关代码的编译需要链接上posix线程库:gcc xxx.c -lpthread -l是链接选项,pthread是库名称,默认不添加空格也可以添加空格gcc xxx.c -l pthread
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/aa72e1afccb34b7d3dc73b2ae212066e.png)
![img](https://img-blog.csdnimg.cn/img_convert/4af25d6acca80c0bf3c5a6227681b462.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/acfac9ef532fc2aeec2cca88426fa55b.png)
![img](https://img-blog.csdnimg.cn/img_convert/bfb1142d8955045ab4a82c6942786e80.png)
![img](https://img-blog.csdnimg.cn/img_convert/48464551b8b7ae04ed67a5d03a9f7ddb.png)
![img](https://img-blog.csdnimg.cn/img_convert/4ab7d8736e784e528219a9bd7c1b6b85.png)
![](https://img-blog.csdnimg.cn/img_convert/b5d8dde3dba2ce8c23a17a465612cb98.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!