C++ 并发编程共18篇

面试题:C++ 中 jthread 和 thread 的区别?

在 C++20 中引入了 std::jthread,它是 std::thread 的增强版本,主要区别在于 std::jthread 提供了更安全和更方便的线程管理功能,特别是自动线程回收和协作中断支持...
程序百科的头像-程序百科程序百科36天前
03210

面试题:请介绍 C++ 的 6 种内存序?

在 C++ 中,内存序(Memory Order)是与原子操作和多线程编程相关的重要概念。C++11 引入了 std::memory_order 枚举类型,用于指定原子操作的内存顺序。内存序决定了原子操作在多线程环境中的可...
程序百科的头像-程序百科程序百科35天前
0227

面试题:C++ 中 thread 的 join 和 detach 的区别?

在 C++ 中,std::thread 提供了两种管理线程生命周期的方式:join() 和 detach()。它们的核心区别在于线程的执行与主线程的关系以及资源的释放方式。 1. join() 功能: 阻...
程序百科的头像-程序百科程序百科36天前
0347

面试题:C++ 中锁的底层原理是什么?

在 C++ 中,锁(如 std::mutex)的底层原理主要依赖于操作系统的同步机制和硬件支持的原子操作。锁的实现通常涉及以下几个关键点: 1. 锁的基本概念 锁是一种同步机制,用于保护共享...
程序百科的头像-程序百科程序百科35天前
0215

面试题:C++ 中 lock_guard 和 unique_lock 的区别?

在 C++ 中,std::lock_guard 和 std::unique_lock 都是用于管理互斥锁(std::mutex)的 RAII 包装器,它们的主要目的是确保锁在作用域结束时自动释放,从而避免死锁或资源泄漏。...
程序百科的头像-程序百科程序百科36天前
02610

面试题:什么场景下使用锁?什么场景下使用原子变量?

在 C++ 多线程编程中,锁(如 std::mutex) 和 原子变量(如 std::atomic) 是两种常用的同步机制。它们各有优缺点,适用于不同的场景。以下是它们的对比以及适用场景...
程序百科的头像-程序百科程序百科35天前
0389

面试题:C++ 多线程开发需要注意些什么?线程同步有哪些手段?

C++ 多线程开发是一个复杂且容易出错的领域,需要特别注意线程安全、资源竞争、死锁等问题。以下是多线程开发中需要注意的事项以及常用的线程同步手段。 C++ 多线程开发需要注意的事项 线程安全...
程序百科的头像-程序百科程序百科35天前
05214

面试题:如何理解 C++ 中的 atomic?

在 C++ 中,std::atomic 是一个模板类,用于实现原子操作。原子操作是不可分割的操作,即在多线程环境中,一个线程执行原子操作时,不会被其他线程中断。std::atomic 提供了一种高效...
程序百科的头像-程序百科程序百科35天前
0537