上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 43 下一页
摘要: 一、前言 如果g_mutex.lock()和g_mutex.unlock()之间的语句发生了异常,会发生什么?看这个例子: #include <iostream> #include <thread> #include <mutex> // 实例化互斥锁对象,不要理解为定义变量 std::mutex 阅读全文
posted @ 2021-03-25 11:30 fengMisaka 阅读(3214) 评论(0) 推荐(0) 编辑
摘要: 一、什么是竞争条件? 在多线程环境中,线程间的数据共享很简单,但是在程序中这种简单的数据共享可能会引起问题,最常见的错误之一就是竞争条件(race condition),而其中最常见的就是数据竞争(data race)。 竞争条件是发生在多线程应用程序中的一种 bug。当两个或多个线程并行执行一组操 阅读全文
posted @ 2021-03-25 11:16 fengMisaka 阅读(1441) 评论(0) 推荐(0) 编辑
摘要: 一、构造函数的参数 std::thread类的构造函数是使用可变参数模板实现的,也就是说,可以传递任意个参数,第一个参数是线程的入口函数,而后面的若干个参数是该函数的参数。 第一个参数的类型并不是 C 语言中的函数指针,在 C++11 中,增加了**可调用对象(Callable Objects)** 阅读全文
posted @ 2021-03-25 11:15 fengMisaka 阅读(2110) 评论(1) 推荐(1) 编辑
摘要: C98 标准中并没有线程库的存在,而在 C11 中终于提供了多线程的标准库,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。 一、创建线程 首先要引入头文件#include<thread>,C++11 中管理线程的函数和类在该头文件中声明,其中包括std::thread类,std::th 阅读全文
posted @ 2021-03-25 11:14 fengMisaka 阅读(2509) 评论(0) 推荐(0) 编辑
摘要: 一、什么是并发? **并发(concurrency)**在生活中随处可见,边走路边说话,边听歌边写代码。计算机术语中的"并发",指的是在单个系统里同时执行多个独立的活动,而不是顺序的一个接一个的执行。 对于单核 CPU 来说,在某个时刻只可能处理一个任务,但它却不是完全执行完一个任务再执行一个下一任 阅读全文
posted @ 2021-03-25 10:10 fengMisaka 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 一、stdfunction与stdbind双剑合璧 因为类成员函数都有一个默认的参数,this,作为第一个参数,这就导致了类成员函数不能直接赋值给std::function,这时候我们就需要std::bind了,简言之,std::bind的作用就是转换函数签名,将缺少的参数补上,将多了的参数去掉,甚 阅读全文
posted @ 2021-03-25 10:03 fengMisaka 阅读(6588) 评论(0) 推荐(4) 编辑
摘要: 在理解“回调函数”之前,首先讨论下函数指针的概念。 一、函数指针概述 指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种 阅读全文
posted @ 2021-03-25 10:02 fengMisaka 阅读(6466) 评论(1) 推荐(2) 编辑
摘要: 简短介绍软件版本号的一般定义原则和一些相关知识。 一、格式 主版本号.次版本号.修订号 例: 1.0.0 二、递增规则 主版本号:当你做了不兼容的 API 修改。 次版本号:当你做了向下兼容的功能性新增。 修订号:当你做了向下兼容的问题修正。 三、先行版本号 先行版本号可以加到”主版本号.次版本号. 阅读全文
posted @ 2021-03-25 10:01 fengMisaka 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 转自:陪她去流浪的C++中的虚函数(表)实现机制以及用C语言对其进行的模拟实现 前言 大家都应该知道C的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑 阅读全文
posted @ 2021-03-25 09:52 fengMisaka 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 一、weak_ptr弱引用的智能指针 1.1 shared_ptr相互引用会有什么后果? shared_ptr的一个最大的陷阱是循环引用,循环引用会导致堆内存无法正确释放,导致内存泄漏。看下面的例子: #include <iostream> #include <memory> class Paren 阅读全文
posted @ 2021-03-25 09:48 fengMisaka 阅读(1052) 评论(0) 推荐(1) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 43 下一页