
#多线程编程
文章平均质量分 96
主要涉及C++多线程编程方面的,比如,线程创建,线程同步等等
流星雨爱编程
记录工作的日常,心得体会
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++之写时复制(CopyOnWrite)原理详解
CopyOnWrite允许多个对象共享相同的数据,避免了不必要的数据复制。这对于大型数据结构或多个对象需要引用相同数据的情况下,可以节省大量的内存。对于很少修改数据的情况下,CopyOnWrite可以显著提高性能。由于读操作不需要加锁,多个线程可以同时访问共享数据,提高并发访问的效率。对于一些读多写少的数据,写入时复制的做法就很不错,例如配置、黑名单、物流地址等变化非常少的数据,这是一种无锁的实现。可以帮我们实现程序更高的并发。减少数据拷贝。原创 2024-04-22 23:20:41 · 2192 阅读 · 0 评论 -
C++多线程编程之std::call_once
是 C++11 提供的模版函数,能够帮助我们在多线程环境中安全、简洁地实现“单次调用”的逻辑。通过合理使用,我们可以确保线程安全地执行初始化和其他需要保证只执行一次的操作,从而提高程序的稳定性和效率。正确的使用场景、最佳实践以及性能优化技巧将进一步增强我们在多线程编程中的能力。推荐阅读设计模式之单例模式-CSDN博客。原创 2025-01-02 20:36:33 · 1174 阅读 · 3 评论 -
异步编程之std::future(一): 使用
std::future是 C++11 标准库中引入的一个非常重要的特性,它提供了一种机制来访问异步操作的结果。当你启动一个异步操作(比如,通过std::async、std::packaged_task、std::promise等)时,你可以立即获得一个std::future对象,这个对象将在异步操作完成时持有操作的结果。原创 2024-08-02 23:18:41 · 1221 阅读 · 19 评论 -
深入理解C++中的锁
C++标准库提供了多种类型的互斥锁,每种锁都有其特定的用途和特点。选择合适的互斥锁类型可以有效提高程序的并发性能和安全性。C++惯用法之RAII思想: 资源管理_raii 思想-CSDN博客。原创 2024-07-02 23:15:03 · 2180 阅读 · 0 评论 -
C++之thread_local变量
thread_local 是 C++11 为线程安全引进的变量声明符。表示对象的生命周期属于线程存储期。线程局部存储(Thread Local Storage,TLS)是一种存储期(storage duration),对象的存储是在线程开始时分配,线程结束时回收,每个线程有该对象自己的实例;如果类的成员函数内定义了 thread_local 变量,则对于同一个线程内的该类的多个对象都会共享一个变量实例,并且只会在第一次执行这个成员函数时初始化这个变量实例。原创 2024-06-21 20:14:14 · 4093 阅读 · 15 评论 -
有了std::thread,为什么还需要引入std::jthread?
C++11以来提供了C++原生的多线程std::thread,这极大的方便了多线程的书写。在此之前书写多线程时需要平台原生API,这对于跨平台尤其是跨多平台程序来讲,多线程部分代码书写及维护都是极大的工作量。}};运行如上代码时,会出现崩溃,堆栈信息如下:由如上堆栈信息可知,崩溃原因为std::thread在析构时,如果对象仍为joinable状态,则会触发中断,为避免崩溃需要在std::thread析构器前需要将其置于非joinable状态,即需要主动调用join或detach接口。原创 2024-03-20 15:58:04 · 1541 阅读 · 0 评论 -
std::thread使用及实现原理精讲(全)
线程创建和销毁是昂贵的操作,应尽量避免频繁创建和销毁线程。线程间共享数据时,要确保数据访问的线程安全性。尽量避免在多个线程中访问和修改全局变量或静态变量,除非这些变量是线程安全的。使用 std::thread 时,要确保在程序结束前对所有线程调用 join() 或 detach(),以避免资源泄漏。总之,std::thread 为 C++ 提供了强大而灵活的多线程支持,使得开发者能够更容易地编写并行程序。然而,多线程编程也带来了额外的复杂性和挑战,需要开发者仔细考虑线程间的数据共享和同步问题。原创 2024-03-22 22:44:41 · 4082 阅读 · 3 评论 -
C++11原子操作
C++原子操作提供了一种高效、安全的多线程数据访问方式,在性能和安全性方面具有显著优势。通过合理使用std::atomic类和内存序选项,开发者可以编写出高效、可靠的多线程程序。原创 2024-06-06 23:12:37 · 2577 阅读 · 20 评论