无锁多线程相关概念和技术,包括原子操作、内存模型、内存顺序、CAS等。
WaitForMultipleObjects 的轻量级模拟。代码
“事件”对象的一个轻量级实现,方法与信号量基本一样。
基于 SRWLOCK 和条件变量(Condition Variable)实现,需要 Windows Vista 及以上操作系统,编译时 _WIN32_WINNT 要大于 0x0600。 基本功能和用 CreateSemaphore 创建出来的差不
单件模式可能是所有设计模式中最简单的一个了,但在 C++ 中,尤其是还要支持多线程的话,要想写一个正确的实现却并不容易。
不多解释了,直接上代码吧。
注:本文有一些不准确的地方,如对相关内容感兴趣,推荐阅读《无锁多线程那些事》。 加锁、解锁(同步/互斥)是多线程中非常基本的操作,但我却看到不
与《windows核心编程》上的那个相比最大的优势是体积小,它只有四个字节(《windows核心编程》上的那个至少是它的10倍),如果你有大
毫无疑问,引用计数是一种非常有效的动态控制对象生命周期的机制。我们最熟悉的引用计数实现可能就要数 COM 的 AddRef 和 Release 了。但这种机制也有明显的缺点,那就
互锁函数是多线程处理中最简单高效的手段之一,但这些函数的功能实在是太差劲了,要求稍微复杂一点,就完成不了。比如 if( n > 100 ) n++; 这么简单的功能,它