当前位置: 首页 > wzjs >正文

门户网站建设方案费用外贸seo软文发布平台

门户网站建设方案费用,外贸seo软文发布平台,最好看的2019中文大全在线观看,淄博 网站建设一:概述 在多线程编程中,如果一个线程需要访问外部作用域的变量,就必须保证这个变量在 线程结束之前依然有效,否则可能会出现 悬空指针(dangling pointer) 的问题,导致 未定义行为。 二&#x…

一:概述

        在多线程编程中,如果一个线程需要访问外部作用域的变量,就必须保证这个变量在 线程结束之前依然有效,否则可能会出现 悬空指针(dangling pointer) 的问题,导致 未定义行为。

二:如何解决?

        使用 joining_thread(类似 std::thread,但会在析构时自动 join(),且不能 detach())可以避免这种问题,因为:

  • 线程的生命周期受到管理:不会意外地 detach() 导致资源泄漏。
  • 作用域内对象的生命周期受控:确保线程所访问的对象在其执行期间是有效的。

三:代码示例

#include <iostream>
#include <thread>
#include <memory>void f(int* p) {*p = 99;
}int glob = 33;void some_fct(int* p) {int x = 77;std::thread t0(f, &x);         // ✅ OK:x 在作用域内std::thread t1(f, p);          // ✅ OK:p 是外部传入的std::thread t2(f, &glob);      // ✅ OK:glob 是全局变量auto q = std::make_unique<int>(99);std::thread t3(f, q.get());    // ❌ 错误!q 是局部变量,t3 可能在 q 析构后访问无效地址t0.join();t1.join();t2.join();t3.join();
}

         以上 t3(f, q.get()); 可能会导致 悬空指针,因为 qsome_fct() 结束时会被销毁,而 t3 可能仍然在运行,这样 f() 就可能访问已释放的内存,导致 未定义行为。

        解决办法:使用 joining_thread(概念类似 std::thread,但会在析构时自动 join(),确保线程不会在变量生命周期之外运行)

#include <iostream>
#include <thread>
#include <memory>class joining_thread {std::thread t;
public:template <typename... Args>explicit joining_thread(Args&&... args) : t(std::forward<Args>(args)...) {}~joining_thread() {if (t.joinable()) {t.join();}}joining_thread(const joining_thread&) = delete;joining_thread& operator=(const joining_thread&) = delete;
};void f(int* p) {*p = 99;
}int glob = 33;void some_fct(int* p) {int x = 77;joining_thread t0(f, &x);          // ✅ OK:x 在作用域内joining_thread t1(f, p);           // ✅ OK:p 是外部传入的joining_thread t2(f, &glob);       // ✅ OK:glob 是全局变量auto q = std::make_unique<int>(99);joining_thread t3(f, q.get());     // ✅ OK:q 仍然在作用域内// 这里不需要手动 join(),析构时会自动 join()
}
 

http://www.dtcms.com/wzjs/311655.html

相关文章:

  • 滨州网站建设公司各大搜索引擎收录入口
  • b2c电子商务网站开发无货源电商怎么做
  • 西宁做网站需要多少钱网站推广app软件
  • 深圳创业补贴怎么申请长春网站优化哪家好
  • 青岛市城市建设局网站北京网站优化排名
  • 江苏网站建设定制北京seo相关
  • 做网站自动上传文章seo实战密码第四版
  • 上海比较好的网站建设公司宁波网站推广公司价格
  • 飞浪网站建设网站推广系统方案
  • 肇庆住房城乡建设局网站百度知道合伙人官网登录入口
  • 学习java可以自己做网站吗网络热词作文
  • wordpress建站阿里云深圳百度快速排名提升
  • wordpress 多站点 多域名逆冬seo
  • 站点创建成功有影响吗软文素材库
  • 番禺品牌型网站怎么做app推广和宣传
  • 外贸网站制作策划引擎优化seo怎么做
  • 网站开发者工作描述小时seo加盟
  • 石家庄网站制作福州企业做个网站多少钱
  • 格尔木哪里有做网站的2023年10月爆发新冠
  • 中山哪里有做微网站的国内疫情最新消息
  • flash怎么制作网站百度seo推广怎么收费
  • 我想做自己网站怎么做搜索引擎优化是指什么意思
  • 溧阳网站开发画质优化app下载
  • 顺德新网站建设湖南今日新闻最新头条
  • 徐州免费网站建设班级优化大师简介
  • 建网站是自己做还是用CMS如何去除痘痘有效果
  • 国际网站建设的目的网站建设的整体流程有哪些
  • 做网站需要的带宽上行还是下行百度广告代理
  • 网站建设评估网络营销有什么岗位
  • 上海建设交通委网站湖州seo排名