并发编程
wuhuaguo268
这个作者很懒,什么都没留下…
展开
-
C++实现线程安全的单例模式
在某些应用环境下面,一个类只允许有一个实例,这就是著名的单例模式。单例模式分为懒汉模式,跟饿汉模式两种。首先给出饿汉模式的实现 template <class T>class singleton{protected: singleton(){};private: singleton(const singleton&){};//禁止拷贝 ...转载 2019-11-13 12:38:39 · 118 阅读 · 0 评论 -
pthread_once()函数详解
在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));功能:本函数使用初...转载 2019-11-09 21:16:39 · 218 阅读 · 0 评论 -
并发编程(三): 使用C++11实现无锁stack(lock-free stack)
前几篇文章,我们讨论了如何使用mutex保护数据及使用使用condition variable在多线程中进行同步。然而,使用mutex将会导致一下问题:等待互斥锁会消耗宝贵的时间 — 有时候是很多时间。这种延迟会损害系统的scalability。尤其是在现在可用的core越多越多的情况下。低优先级的线程可以获得互斥锁,因此阻碍需要同一互斥锁的高优先级线程。这个问题称为优先级倒置(priority...转载 2019-11-04 16:07:06 · 453 阅读 · 0 评论 -
gcc 原子操作函数
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-11-04 14:44:07 · 339 阅读 · 1 评论 -
理解CAS与__sync_bool_compare_and_swap
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-11-04 14:42:56 · 422 阅读 · 0 评论