APUE中12.6节内的代码12-5实现的getenv感觉没有达到线程安全啊,求指教~

Sad_Sugar 2014-01-17 06:13:03
作者用线程私有数据实现了“线程安全”的getenv函数,但我觉得如果有多个线程同时调用这个getenv()函数的时候,依然返回的是同一个缓冲区的内容,没有达到线程安全。

求解释~谢谢!

如果需要具体的问题描述和相应代码,可以在我的博客看:http://blog.csdn.net/sad_sugar/article/details/18412603

多谢大家指教!!!
...全文
259 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sad_Sugar 2014-01-18
  • 打赏
  • 举报
回复
明白了!!!多谢!!!
非凡glj 2014-01-17
  • 打赏
  • 举报
回复
引用 2 楼 Sad_Sugar 的回复:
[quote=引用 1 楼 zgglj 的回复:] [quote=引用 楼主 Sad_Sugar 的回复:] 作者用线程私有数据实现了“线程安全”的getenv函数,但我觉得如果有多个线程同时调用这个getenv()函数的时候,依然返回的是同一个缓冲区的内容,没有达到线程安全。 求解释~谢谢! 如果需要具体的问题描述和相应代码,可以在我的博客看:http://blog.csdn.net/sad_sugar/article/details/18412603 多谢大家指教!!!
线程私有存储的使用是整个进程对某个pthread_key_t做一次 pthread_key_create,每个线程调用pthread_getspecific的时候取到自己的私有存储空间,你可以想象成是该key是一个map,每个线程用自己的线程id获取对应的空间[/quote] void* pthread_getspecific(pthread_key_t key),这个函数的参数是生成的key,你的意思是,虽然整个进程只产生一个key,但每个线程通过同样的key得到的存储空间却是不同的,并不是说一个key对应一段空间,是这样理解吗?[/quote] 是的
Sad_Sugar 2014-01-17
  • 打赏
  • 举报
回复
引用 1 楼 zgglj 的回复:
[quote=引用 楼主 Sad_Sugar 的回复:] 作者用线程私有数据实现了“线程安全”的getenv函数,但我觉得如果有多个线程同时调用这个getenv()函数的时候,依然返回的是同一个缓冲区的内容,没有达到线程安全。 求解释~谢谢! 如果需要具体的问题描述和相应代码,可以在我的博客看:http://blog.csdn.net/sad_sugar/article/details/18412603 多谢大家指教!!!
线程私有存储的使用是整个进程对某个pthread_key_t做一次 pthread_key_create,每个线程调用pthread_getspecific的时候取到自己的私有存储空间,你可以想象成是该key是一个map,每个线程用自己的线程id获取对应的空间[/quote] void* pthread_getspecific(pthread_key_t key),这个函数的参数是生成的key,你的意思是,虽然整个进程只产生一个key,但每个线程通过同样的key得到的存储空间却是不同的,并不是说一个key对应一段空间,是这样理解吗?
非凡glj 2014-01-17
  • 打赏
  • 举报
回复
引用 楼主 Sad_Sugar 的回复:
作者用线程私有数据实现了“线程安全”的getenv函数,但我觉得如果有多个线程同时调用这个getenv()函数的时候,依然返回的是同一个缓冲区的内容,没有达到线程安全。 求解释~谢谢! 如果需要具体的问题描述和相应代码,可以在我的博客看:http://blog.csdn.net/sad_sugar/article/details/18412603 多谢大家指教!!!
线程私有存储的使用是整个进程对某个pthread_key_t做一次 pthread_key_create,每个线程调用pthread_getspecific的时候取到自己的私有存储空间,你可以想象成是该key是一个map,每个线程用自己的线程id获取对应的空间
附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[坡道(ramp)] · 训练集:275 张 · 验证集:27 张 · 测试集:0 张 · 总计:302 张 该数据集聚焦于城市环境中各类建筑入口处的坡道设施,涵盖住宅、商铺、公共设施等多种场景,真实反映了无障碍通行设施在实际应用中的多样化形态。数据集中包含金属、橡胶、塑料等多种材质的坡道,以及不同尺寸、结构和安装方式的实例,充分体现了坡道在城市基础设施中的广泛部署与重要性。该数据集为城市智慧化管理、无障碍环境建设及公共安全监控提供了高质量的视觉基础支持。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 33 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.6372** mAP50-95 | 0.3401 Precision | 0.6603 Recall | 0.6190 train/box_loss | 1.0569 train/cls_loss | 0.7307 val/box_loss | 1.6084 val/cls_loss | 1.9323 【训练过程分析】 33 轮训练后 mAP50 仅 0.6372,模型收敛不充分。Loss 曲线前期下降后进入平台期,mAP 提升缓慢。mAP50-95 为 0.3401,定位精度同样偏低。 【模型性能评估】 Precision 0.6603、Recall 0.6190,精度高于召回,存在一... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

18,828

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧