std::lock 是一个 C++ 用于避免死锁的工具,用于一次性锁住多个互斥锁(std::mutex),它通过确保锁定顺序一致,避免了死锁的发生。死锁是指程序中有多个共享资源,通常情况下,多个共享资...
std::async 是 C++11 引入的一个工具函数,它主要用于在程序中创建 异步任务、延迟任务。本篇文章将通过设计的 6 个示例程序来展示如何利用 std::async 实现异步任务与延迟任务。...
在现代软件开发中,并发编程成为提升性能的关键。无论是处理大量数据、提升响应速度,还是高效利用多核 CPU,多线程编程都至关重要。在 C++ 中 通过使用 std::thread 类,我们能够轻松地创建...
Google gRPC(Google Remote Procedure Call)是一个高性能、开源的远程过程调用框架,它允许客户端直接调用远程服务器上的方法,就像调用本地方法一样,屏蔽了网络通信的复...
std::ref 是 C++ 标准库中的一个工具,用于将对象封装为引用包装器 ,从而实现将原本作为值传递、需要拷贝的对象,能够以避免对象拷贝的方式传递。 问题场景:一个对象传递一个以值方式接受参数的函...
std::bind 是 C++11 引入的一个函数适配器,它可以将函数或可调用对象与其参数绑定在一起,在调用时,减少传入的参数数量,从而简化函数调用。 1. 使用 2. 探讨 这一小节主要探讨l两个话...
new 和 delete 是 C++ 中非常重要的两个关键字,其作用是实现动态对象的管理。正确掌握它们的使用方法对于有效管理程序的内存、提高性能,以及避免内存泄漏等问题至关重要,是编写健壮 C++ 程...
Google Protocol Buffers(简称 Protobuf)是一种由 Google 开发的,用于定义结构化数据并在不同的系统或编程语言之间高效地传输和存储数据。它可以看作是一种更轻量且更高...
Protocol Buffers(protobuf)主要用于在不同系统、不同语言之间进行高效的数据序列化和反序列化。从而实现跨平台、跨语言的数据交互、网络通信、持久化存储等问题的工具。 在 C++ 中...
Protocol Buffers 使用了一种中立、平台无关的语言来定义数据结构,使得不同编程语言、不同平台之间能够进行数据交互。Protocol Buffers 目前主要有 Proto2 和 Prot...
Protobuf 中的类型会对应到 CPP 中的对象,我们需要了解如何操作这些对象,以及如何序列化和反序列化这些对象。 1. 定义数据 创建 sample.proto 文件,定义数据如下: 接下来,使...
虚函数(virtual function)指的是 C++ 中使用 virtual 关键字声明的函数。从表面看起来仅仅是一个函数的声明,但是其背后有着一套较为复杂的机制,通过这套机制能为 C++ 引入一...
Protocol Buffer 会将对象序列化为二进制数据。在本文中,我们简单了解下它是如何对数据进行编码的,即:了解下底层的编码格式。当然并非必须的,日常使用 Protocol Buffer 不需要...
在 C++ 多线程编程中,线程局部存储(Thread Local Storage)是一项非常重要且值得深入理解的技术。它在提升线程安全性、简化并发设计中发挥着关键作用,是每一位 C++ 开发者都应...