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

网站平台开发报价表怎么做2024年重大政治时事汇总

网站平台开发报价表怎么做,2024年重大政治时事汇总,做啥网站能挣钱,好玩网页游戏一:概述 在多线程编程中,如果一个线程需要访问外部作用域的变量,就必须保证这个变量在 线程结束之前依然有效,否则可能会出现 悬空指针(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/133112.html

相关文章:

  • 网站建设与维护学什么科目怎么创建一个网站
  • 国外优秀电商设计网站搜索引擎优化的具体操作
  • 镇江扬中疫情最新情况优化培训课程
  • php网站微信登录怎么做百度开户推广
  • 三层架构做网站还是系统seo优化
  • 广州专业网站建设报价东莞最新疫情
  • 做直播网站需要什么网络推广网站程序
  • wordpress小蜜蜂游戏优化是什么意思
  • 做书一般在哪个网站下载素材bt兔子磁力天堂
  • 互联网接入服务商是南昌百度seo
  • ASP做购物网站视频推广公司运营模式
  • 湖南众诚建设 官方网站百度云网盘资源链接
  • 网站空间怎么选择橘子seo查询
  • 小企业网站服务器安徽网站设计
  • 做网页的网站叫什么免费做网页的网站
  • 阿里巴巴吧网站怎么做现在学seo课程多少钱
  • 三丰云怎么做网站如何线上推广自己产品
  • 阅读网站怎样做网络营销策划书的主要内容
  • 毕业论文做家具网站设计要求网络工程师培训机构排名
  • 58同城网站模板济南全网推广
  • 自助建站免费申请个人网页网页开发培训网
  • 浙江网站建设自助建站优化宁波网站优化公司价格
  • 怎么查那家网络公司做的所以网站网络营销策略的特点
  • 区块链 做网站简述在线推广网站的方法
  • 汉阳网站建设开封网站推广公司
  • 营销型外贸网站制作网络小说排行榜
  • 做网站开发钱哪里有网页设计公司
  • 网站册数外链seo招聘
  • 网站挂马个人问题还是服务商广州抖音推广公司
  • 网站如何做搜索优化设计答案六年级