排序
面试题:C++ 中 shared_from_this 的作用是什么?它有什么优点?
shared_from_this 是 C++ 标准库中的一个工具,用于在类的成员函数中安全地获取一个指向当前对象的 std::shared_ptr。它通常与 std::enable_shared_from_this 一起使用。 ...
面试题:C++ 的 string 内部使用的是堆内存还是栈内存?
在 C++ 中,std::string 的内部实现通常使用堆内存来存储字符串数据。这是因为字符串的长度通常是动态变化的,栈内存的大小有限且不适合存储可能很大的动态数据。 具体说明: 栈内存:栈内存用...
面试题:C++ 有哪些进程间通信的方式?
在 C++ 中,进程间通信(Inter-Process Communication, IPC)是实现多个进程之间数据交换和同步的重要机制。C++ 本身并没有直接提供 IPC 的实现,但可以借助操作系统提供的机制或第三方库来实现...
面试题:请介绍 C++ 中 future、promise、packaged_task、async 的区别?
在 C++ 中,std::future、std::promise、std::packaged_task 和 std::async 是用于异步编程的工具,它们共同构成了 C++11 引入的并发编程模型。以下是它们的区别和用途: 1.&nbs...
面试题:C++ 的 async 使用时有哪些注意事项?
在 C++ 中,std::async 是一个用于异步执行任务的工具,它封装了线程创建和任务调度的细节,使得异步编程更加简单。然而,使用 std::async 时需要注意一些关键问题,以避免潜在...
面试题:如何理解 C++ 中的 atomic?
在 C++ 中,std::atomic 是一个模板类,用于实现原子操作。原子操作是不可分割的操作,即在多线程环境中,一个线程执行原子操作时,不会被其他线程中断。std::atomic 提供了一种高效...
面试题:什么场景下使用锁?什么场景下使用原子变量?
在 C++ 多线程编程中,锁(如 std::mutex) 和 原子变量(如 std::atomic) 是两种常用的同步机制。它们各有优缺点,适用于不同的场景。以下是它们的对比以及适用场景...
面试题:C++ 中锁的底层原理是什么?
在 C++ 中,锁(如 std::mutex)的底层原理主要依赖于操作系统的同步机制和硬件支持的原子操作。锁的实现通常涉及以下几个关键点: 1. 锁的基本概念 锁是一种同步机制,用于保护共享...
面试题:请介绍 C++ 的 6 种内存序?
在 C++ 中,内存序(Memory Order)是与原子操作和多线程编程相关的重要概念。C++11 引入了 std::memory_order 枚举类型,用于指定原子操作的内存顺序。内存序决定了原子操作在多线程环境中的可...
面试题:C++ 的条件变量为什么要配合锁使用?
在 C++ 中,条件变量(std::condition_variable)通常需要与锁(如 std::mutex)配合使用,主要原因是为了解决 竞争条件 和 线程同步 的问题。以下是详细解释: 1.&nb...