boost
文章平均质量分 93
吃素的施子
这个作者很懒,什么都没留下…
展开
-
C++智能指针详解:shared_ptr
C++没有内存回收机制,每次程序员new出来的对象需要手动delete,流程复杂时可能会漏掉delete,导致内存泄漏。于是C++引入智能指针,可用于动态资源管理,资源即对象的管理策略。使用 raw pointer 管理动态内存时,经常会遇到这样的问题:忘记delete内存,造成内存泄露。 出现异常时,不会执行delete,造成内存泄露。下面的代码解释了,当一个操作发生异常时,会导致delete不会被执行:void func(){ auto ptr = new Widget;原创 2021-12-19 14:52:26 · 19062 阅读 · 2 评论 -
Boost库:字符串操作
结合Boost官网由于这一章内容过多,我将采用四个小章,精简原文四个小部分内容。第四小章还包含了题目及讲解。区域设置: setlocale(LC_ALL,“”) locale::global(std::locale("German")); //设置全局区域德语环境 字符串操作:一、将字符串所有字符转成大写 boost::algorithm::to_upper("")//自身转化 boost::algorithm::to_upper_co..转载 2020-12-11 17:27:05 · 1084 阅读 · 0 评论 -
Boost读写锁:shared_mutex
shared_mutex即读写锁,不同与我们常用的独占式锁mutex,shared_mutex是共享与独占共存的锁,实现了读写锁的机制,即多个读线程一个写线程,通常用于对于一个共享区域的读操作比较频繁,而写操作比较少的情况。 读写锁比起mutex具有更高的适用性,具有更高的并行性,可以有多个线程同时占用读模式的读写锁,但是只能有一个线程占用写模式的读写锁,读写锁的基本规则可以总结为“写优先,读共享,交叉互斥“,具体表现为读写锁的三种状态: (1)当读写锁是写加锁状态时,在这...原创 2020-11-03 16:52:15 · 2857 阅读 · 3 评论 -
C++的Boost库:asio::io_context 替换掉asio::io_service的问题
新版 ASIO 必须以asio::io_context替换asio::io_serviceio_context -> io_service io_context.post() -> io_context.get_executor().post() io_context.dispatch() -> io_context.get_executor().dispatch() io_context::strand -> strand<io_context::execut...原创 2020-09-14 13:42:42 · 6923 阅读 · 0 评论 -
boost::asio定时器的实现
并发与并行:并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。1.Timer.1 - 使用同步定时器所有的Asio类只要简单的包含"asio.hpp"头文件便可使用:#include <boost/asio.hpp>因为本程序中使用了定时器,我们需要包含相应的的Boost.Date_Time 头文件来处理时间操作:#include <boost/date_...原创 2020-08-05 14:26:02 · 1087 阅读 · 0 评论 -
Boost Asio介绍
一 、 简介 Boost Asio ( asynchronous input and output)关注异步输入输出。Boost Asio库提供了平台无关性的异步数据处理能力(当然它也支持同步数据处理)。一般的数据传输过程需要通过函数的返回值来判断数据传输是否成功。Boost Asio将数据传输分为两个独立的步骤: 采用异步任务的方式开始数据传输。 将传输结果通知调用端 与传统方式相比,优点在于程序在数据传输期间不会阻塞。二 、I/O services ...转载 2020-08-03 18:58:22 · 3610 阅读 · 0 评论