合肥的网站建设剂屏购物网站开发流程

news/2025/10/8 20:43:09/文章来源:
合肥的网站建设剂屏,购物网站开发流程,浙江建设职业技术学校网站登录,品牌网站建设 细致磐石网络文章目录 5 智能指针与内存管理5.1 RAII与引用计数5.2 std::shared_ptr5.3 std::unique_ptr5.4 std::weak_ptr 6 正则表达式7 并行与并发7.1 并行基础7.2 互斥量与临界区7.3 期物7.4 条件变量7.5 原子操作与内存模型 5 智能指针与内存管理 5.1 RAII与引用计数 在传统 C 中 中『记得』手动释放资源总不是最佳实践。因为我们很有可能就忘记了去释放资源而导致泄露。 所以通常的做法是对于一个对象而言我们在构造函数的时候申请空间而在析构函数在离开作用域时调用的时候释放空间 也就是我们常说的 RAII 资源获取即初始化技术。 凡事都有例外我们总会有需要将对象在自由存储上分配的需求在传统 C 里我们只好使用 new 和 delete 去 『记得』对资源进行释放。而 C11 引入了智能指针的概念使用了引用计数的想法让程序员不再需要关心手动释放内存。 这些智能指针包括 std::shared_ptr/std::unique_ptr/std::weak_ptr使用它们需要包含头文件 memory。 5.2 std::shared_ptr std::shared_ptr 是一种智能指针它能够记录多少个 shared_ptr 共同指向一个对象从而消除显式的调用 delete当引用计数变为零的时候就会将对象自动删除。 但还不够因为使用 std::shared_ptr 仍然需要使用 new 来调用这使得代码出现了某种程度上的不对称。 std::make_shared 就能够用来消除显式的使用 new所以std::make_shared 会分配创建传入参数中的对象 并返回这个对象类型的std::shared_ptr指针。 5.3 std::unique_ptr std::unique_ptr 是一种独占的智能指针它禁止其他智能指针与其共享同一个对象从而保证代码的安全。 既然是独占换句话说就是不可复制。但是我们可以利用 std::move 将其转移给其他的 unique_ptr。 5.4 std::weak_ptr std::weak_ptr是一种弱引用相比较而言 std::shared_ptr 就是一种强引用。弱引用不会引起引用计数增加。 std::weak_ptr 没有 * 运算符和 - 运算符所以不能够对资源进行操作它可以用于检查 std::shared_ptr 是否存在其 expired() 方法能在资源未被释放时会返回 false否则返回 true除此之外它也可以用于获取指向原始对象的 std::shared_ptr 指针其 lock() 方法在原始对象未被释放时返回一个指向原始对象的 std::shared_ptr 指针进而访问原始对象的资源否则返回nullptr。 6 正则表达式 这一章没什么好介绍的跳过。 7 并行与并发 7.1 并行基础 std::thread 用于创建一个执行的线程实例所以它是一切并发编程的基础使用时需要包含 头文件 它提供了很多基本的线程操作例如 get_id() 来获取所创建线程的线程 ID使用 join() 来等待一个线程结束与该线程汇合等等。 7.2 互斥量与临界区 我们在操作系统、亦或是数据库的相关知识中已经了解过了有关并发技术的基本知识mutex 就是其中的核心之一。 C11 引入了 mutex 相关的类其所有相关的函数都放在 mutex 头文件中。 std::mutex 是 C11 中最基本的 mutex 类通过实例化 std::mutex 可以创建互斥量 而通过其成员函数 lock() 可以进行上锁unlock() 可以进行解锁。 但是在实际编写代码的过程中最好不去直接调用成员函数 因为调用成员函数就需要在每个临界区的出口处调用 unlock()当然还包括异常。 这时候 C11 还为互斥量提供了一个 RAII 语法的模板类 std::lock_guard。 RAII 在不失代码简洁性的同时很好的保证了代码的异常安全性。 由于 C 保证了所有栈对象在生命周期结束时会被销毁所以这样的代码也是异常安全的。 无论 critical_section() 正常返回、还是在中途抛出异常都会引发堆栈回退也就自动调用了 unlock()。 而 std::unique_lock 则是相对于 std::lock_guard 出现的std::unique_lock 更加灵活 std::unique_lock 的对象会以独占所有权没有其他的 unique_lock 对象同时拥有某个 mutex 对象的所有权 的方式管理 mutex 对象上的上锁和解锁的操作。所以在并发编程中推荐使用 std::unique_lock。 std::lock_guard 不能显式的调用 lock 和 unlock 而 std::unique_lock 可以在声明后的任意位置调用 可以缩小锁的作用范围提供更高的并发度。 如果你用到了条件变量 std::condition_variable::wait 则必须使用 std::unique_lock 作为参数。 7.3 期物 期物Future表现为 std::future它提供了一个访问异步操作结果的途径这句话很不好理解。 为了理解这个特性我们需要先理解一下在 C11 之前的多线程行为。 试想如果我们的主线程 A 希望新开辟一个线程 B 去执行某个我们预期的任务并返回我一个结果。 而这时候线程 A 可能正在忙其他的事情无暇顾及 B 的结果 所以我们会很自然的希望能够在某个特定的时间获得线程 B 的结果。 在 C11 的 std::future 被引入之前通常的做法是 创建一个线程 A在线程 A 里启动任务 B当准备完毕后发送一个事件并将结果保存在全局变量中。 而主函数线程 A 里正在做其他的事情当需要结果的时候调用一个线程等待函数来获得执行的结果。 而 C11 提供的 std::future 简化了这个流程可以用来获取异步任务的结果。 自然地我们很容易能够想象到把它作为一种简单的线程同步手段即屏障barrier。 7.4 条件变量 条件变量 std::condition_variable 是为了解决死锁而生当互斥操作不够用而引入的。 比如线程可能需要等待某个条件为真才能继续执行 而一个忙等待循环中可能会导致所有其他线程都无法进入临界区使得条件为真时就会发生死锁。 所以condition_variable 实例被创建出现主要就是用于唤醒等待线程从而避免死锁。 std::condition_variable的 notify_one() 用于唤醒一个线程 notify_all() 则是通知所有线程。 值得一提的是在生产者中我们虽然可以使用 notify_one()但实际上并不建议在此处使用 因为在多消费者的情况下我们的消费者实现中简单放弃了锁的持有这使得可能让其他消费者 争夺此锁从而更好的利用多个消费者之间的并发。话虽如此但实际上因为 std::mutex 的排他性 我们根本无法期待多个消费者能真正意义上的并行消费队列的中生产的内容我们仍需要粒度更细的手段。 7.5 原子操作与内存模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

广西柳州网站建设公司网站建设的实验总结

文章目录 生成数据帧参考 生成数据帧 代码如下,代码很简单,有几点要注意, 较高版本的MATLAB中支持0x的写法使用bitand进行位运算使用strcat函数进行字符串拼接时,如果需要插入空格,要使用双引号 cmd_ay(1) 0x33; …

图片 展示 网站模板快速seo整站优化排行

本博客参考官方文档进行介绍,全网仅此一家进行中文翻译,走过路过不要错过。 官方网址:https://www.mpi-forum.org/ 参考文档:https://www.mpi-forum.org/docs/mpi-4.1/mpi41-report.pdf 引用官方4.1文档方法: manu…

国庆模拟赛总结

2025/10/2 T1 这道题我一眼出思路呀,直接建反边然后判断一下可达性不就秒了吗,10分钟直接秒,不过有点坑,第一个点如果没出边那它就应该标记合法,这不标直接100pts->90pts,以后还是要多注意细节。还有一点很重…

深入解析:video-audio-extractor:视频转换为音频

深入解析:video-audio-extractor:视频转换为音频pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

10.8 CSP-JS 模拟赛 T4. discover

思路 不难想到用数量较少的危险点来限制长方形, 进而处理正方形 现在的问题就是如何精确地刻画任意一个本质相同的长方形, 发现我们完全可以通过枚举四个危险点来刻画一个长方形 但是这样会出现大量的不合法情况\((\)即…

20251008 模拟测 总结

\(\mathcal{Preface}\) 分数 \(50+100+40+100=290\),甚至比去年低 \(15\) 分,有点受不了了。 A 题代码上挂了 \(50\) 分,C 题思维上挂了 \(60\) 分。 简称:挂了 \(50\) 分,还“挂了”\(60\) 分。 挂的最猛烈的一次…

初中学习网站大全免费哈尔滨市城乡和建设局网站

在完成了对Exchange的UM功能进行配置之后,我们要把UM的功能与Lync做集成的话还需要在Lync这边做一些配置。首先我们打开Lync前端服务器,然后打开核心组件安装目录下的Support文件夹,然后双击OcsUmUtil。打开之后我们单击加载数据,…

详细介绍:运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录

详细介绍:运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

VuePress v2是否支持Vue2的配置?

不,VuePress v2 不支持 Vue 2 的配置和运行时。它是一个基于 Vue 3 的全新版本,与 Vue 2 完全不兼容。 以下是详细解释:❌ VuePress v1 vs v2:核心差异特性 VuePress v1 VuePress v2Vue 版本 Vue 2 ✅ Vue 3打包工…

福建省建设局网站实名制建网站的费用包括

.gitignore的使用 1、简介 .gitignore文件用于指定哪些文件或目录应该被Git忽略,即它们不会被Git跟踪和提交到版本控制中。 2、简单语法规则 1、注释:使用#符号进行注释。 2、文件和目录规则:每行一个规则,指定要忽略的文件、…

新人UP主:晓牛开发者的第一篇自我介绍博客测试发布

晓牛、开发者、程序员、开发工程师、Java、后端开发、全栈开发,热爱技术

ubuntu20.04服务器版安装中文输入法分享

1/菜鸟,学生党,旧机,安装好ubuntu20.04服务器版(主要为旧卡GTX660和CUDA11.4考虑)后,发现旧机焕发了新春,挺好用的,哈哈; 2/为了能方便使用微信,就追加了xubuntu图形界面 & wechat,看微信消息是非常的方便了,可是…

手工艺品网站模板智慧团建官网登陆入口

一、GlusterFS简介 GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性 二、GlusterFS特点 2.1 扩展性和高性能 Glu…

DeCLIP

1、第一页 密集视觉预测任务受到对预定义类别的依赖的限制,限制了它们在真实世界场景中的实用性。 视觉语言模型在开放词汇任务中显示出良好前景,但它们直接应用于密集预测任务往往性能不佳。 CLIP的图像token难以有…

商城网站开发项目描述潍坊外贸建站

geojson数据结构geojson作图方法geojson与pandashttps://blog.exploratory.io/visualizing-geospatial-data-with-your-own-geojson-f96dde0f6296​blog.exploratory.io数据结构GeoJSON是用于表示地理对象的格式。 它与常规JSON不同,因为它支持几何类型,…

为什么做民宿网站wordpress 获取链接

为了进一步加强内网安全,在原有硬WAF的基础上,又在内网使用的社区版的雷池WAF,作为应用上层的软WAF。从而实现多WAF防护的架构。 经过进一步了解,发现雷池WAF的上游转发代理是基于Tengine的,所以萌生出了一个想法&…

家居企业网站建设行情企业网站建设排名官网

在软件开发过程中,项目的构建是一个不可避免的环节。而随着项目规模的增大,手动管理编译过程变得越来越繁琐。为了简化构建流程并实现跨平台支持,CMake作为一种流行的构建系统被广泛采用。本文将介绍CMakeLists.txt文件的结构,以及…

19_win11_wsl_linux_配置jdk_mvn

windows11 java Linux系统下JDK和Maven自动安装脚本:一站式Java开发环境解决方案 项目概述 在Linux系统上搭建Java开发环境一直是许多开发者的痛点。手动安装JDK和Maven不仅过程繁琐,还容易遇到环境变量配置错误、版…

南京做网站的公司排名最好看免费观看高清大全多多电影

在LBS(基于位置服务)的一些应用中,有时我们会需要计算两个用户或两个坐标点之间的距离。要解决这类问题,就要了解空间几何的概念并结合数学中在三角函数公式计算两点之间的值。本文介绍基于经度/纬度的,两个坐标点之间的距离计算,…