摘要: std::packaged_task、std::thread 和 std::async 的区别与联系 std::packaged_task、std::thread 和 std::async 都是 C++11 中提供的并发工具,用于执行任务并处理多线程操作。虽然它们都有类似的作用(并发执行任务),但在 阅读全文
posted @ 2024-10-06 17:58 牛马chen 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 在 C++ 中,callable 类型(可调用类型)是指可以像函数一样被调用的对象 C++ 中有多种不同的可调用对象类型,它们可以通过函数调用运算符 () 被调用。 常见的 callable 类型包括: 普通函数(普通函数、静态函数、成员函数) 函数指针 仿函数(函数对象) Lambda 表达式 s 阅读全文
posted @ 2024-09-29 18:17 牛马chen 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 线程创建 头文件#include thread 是在 C++11 标准中引入的。 C++11 标准引入了对多线程编程的标准化支持,其中包括了线程的创建、管理和同步机制。 头文件提供了基本的线程支持库,允许开发者直接使用c++线程进行并行编程,而无需依赖操作系统特定的 API #include <io 阅读全文
posted @ 2024-09-29 18:15 牛马chen 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 多线程环境 并非所有的语言都提供了多线程的环境。即便是C++语言,直到C++11标准之前,也是没有多线程支持的。 在这种情况下,Linux/Unix平台下的开发者通常会使用POSIX Threads,Windows上的开发者也会有相应的接口。 但很明显,这些API都只针对特定的操作系统平台,可移植性 阅读全文
posted @ 2024-09-29 18:00 牛马chen 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 线程的数量应当与处理器的数量相匹配,否则可能会导致性能的下降而不是提升,尤其是在只有一个处理器的情况下。 线程是程序执行的最小单位,它可以在不同的处理器核心上并发执行,利用多核处理器的能力来提升计算效率。 处理器(CPU)核心是物理上能够执行指令的单元。一个处理器可以有一个或多个核心,每个核心都能够 阅读全文
posted @ 2024-09-29 15:57 牛马chen 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 线程安全(Thread Safety)指的是,当多个线程并发执行某段代码时,不会出现竞态条件(Race Condition)等问题,程序能够按照预期正确运行。 一个线程安全的函数,即使在多线程环境下被多个线程同时调用,也能确保其执行的正确性,不会因为共享资源的并发访问而引发错误。 线程安全的定义 线 阅读全文
posted @ 2024-09-29 15:53 牛马chen 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 在 C++ 中,-> 操作符可以被重载,用于对象的指针成员访问。 重载后的 -> 操作符主要用于模拟指针访问行为,常见于智能指针的实现等复杂场景。 -> 操作符重载后的调用触发流程: 在对象上使用 -> 操作符时,编译器按照以下步骤处理: 检查对象类型是否有 operator->() 重载: 如果对 阅读全文
posted @ 2024-09-29 14:48 牛马chen 阅读(9) 评论(0) 推荐(0) 编辑
摘要: operator++(int) 和 operator++() 是 C++ 中重载的两个不同的自增运算符函数,它们分别用于后置自增和前置自增。它们的区别在于调用方式以及自增行为的不同。 1. 前置自增运算符 operator++(): 函数签名: Type& operator++(); 调用方式: + 阅读全文
posted @ 2024-09-27 21:10 牛马chen 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 初始化类成员的两种方式:(1)使用初始化列表;(2)在构造函数体内进行赋值操作。 class Point { public: Point(int xx, int yy) : x(xx), y(yy) { cout << "Constructor of Point" << endl; } privat 阅读全文
posted @ 2024-09-27 15:20 牛马chen 阅读(9) 评论(0) 推荐(0) 编辑
摘要: std::vector::reserve 函数在 C++ 中用于预分配内存,避免在元素增加时多次重新分配内存,从而提高性能。 它最常用于需要频繁向 vector 中添加元素,并且可以预估容器的最终大小的场景。 作用 reserve 函数的主要作用是: 预分配容量:它提前为 vector 分配一定数量 阅读全文
posted @ 2024-09-25 20:40 牛马chen 阅读(353) 评论(0) 推荐(0) 编辑