- 博客(4)
- 资源 (13)
- 收藏
- 关注
原创 Lockfree 习作:最多保存56个对象的简单容器
/// 最多可以存放 56 个数值的容器 template class SafeValuePool { public: SafeValuePool() : _mark(0) {} uint8 lock() { for( ;; ){ for( int i=0; i assert( (_mark & 0xFFFFFFFFFFFFFF00LL)== 0xFFFFFFFFFFFFF
2008-03-17 14:09:00
759
原创 Lockfree 程序中内存释放的另类方法
C++ 的 Lockfree 程序中的内存释放问题是个很大的难点,甚至有些时候被认为是无法解决的,除非C++改变。这里提出一个比较另类的解决方案,希望能起到抛砖引玉的作用。一个对象安全删除的难点在于不知道有多少线程正在访问它,因此一个线程很难确定自己正在读的对象没有被其他线程删除,这里我使用逆向思维的办法来解决这个问题。对于一个 Lockfree 容器,线程访问时,进行注册,将一个Lockfr
2008-03-16 21:57:00
1142
2
原创 C++ 中 inline 的处理
首先声明,我使用的是 Visual Studio 2008. 对其它编译器是否如此不做保证。1. inline 关键字写在声明和实现里 是一样的。2. inline 函数的实现应该写在头文件中,除非只在当前的c文件中使用。(由于没有函数实体,因此连接器是找不到它的)3. inline 函数传入的参数和普通参数规则相同,也就是说,如果传入一个对象,这个对象会被复制(复制构造函数会被调用)。4.
2008-03-13 14:52:00
615
原创 无锁(lock-free)队列的一个简单实现
作为 无锁的 ( lock-free ) 线程安全算法 的一个习作吧。思想、算法十分简单。#ifdef WIN32 inline void sleep( uint32 mil ) { Sleep( mil ); } inline bool CAS(void* pDest, uint32 cmp, uint32 xchg){ return Interloc
2008-03-06 14:18:00
3055
5
LLVM-8.0.0-win64
2019-03-25
cmake-3.13.4-win64-x64.msi
2019-03-13
resiprocate 1.8.12
2013-08-26
resiprocate 1.6 源码包
2011-03-29
bjam 第三方库编译脚本
2010-06-12
DXUT框架剖析 CHM 版
2009-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人