最近在用户态下突然需要用到原子变量,又不想自己编译boost,思来索去,无意中竟发现gcc还有这一组内置函数. //先做操作,再返回变化后的值
type?__sync_fetch_and_add?(type?*ptr,?type?value);
typ...
分类:
其他好文 时间:
2014-10-03 15:11:55
阅读次数:
191
所谓的事物就是一组原子性的SQL语句,或者说是一个独立的工作单元。 1、事物拥有四大特征: ①原子性(atomicity):一个事物必须被分为一个不可分割的的最小单元,整个事物中的所有操作要么全部提交,要么全部回滚,这就是事物的原子性。 ②一致性(consistency):数据库总...
分类:
数据库 时间:
2014-10-03 13:10:24
阅读次数:
253
Boost Lockfree
flyfish 2014-9-30
为了最大限度的挖掘并行编程的性能考虑使用与锁无关的数据结构来编程
与锁无关的数据结构不是依赖于锁和互斥来确保线程安全。
Lockfree的重要操作就是CAS(Compare And Set)原子操作
原子操作就是多个线程访问同一个资源时,有且仅有唯一 一个线程对该资源进行操作
BOOST中的宏定义
BOOST_...
分类:
其他好文 时间:
2014-09-30 16:31:43
阅读次数:
160
Lisp只用原子和表就构建了整个世界,其实表和数组是等价的(不完全)。JS的关联数组是红黑树,关联数组并不是C数组的超集,因为C数组可以当成一片连续内存使用。也许有用的不是数组,而是运算符[],C++只用重载[]就实现了数组。[]只是一个函数调用而已,一种函数调用的简写形式。这种简写或者说语法糖非常重要,因为它让代码的可读性更好。[]是一个运算符重载,即a[1]会变换为标准的函数调用operato...
分类:
其他好文 时间:
2014-09-29 14:19:40
阅读次数:
175
众所周知,多线程下计数存在着计数不正确的问题。这个问题的根源在于多个线程对同一个变量可以同时访问(修改)。这样就造成了修改后的结果不一致。
首先在这里先强调一点,volatile 关键字并不能提供多线程安全访问。因为有volatie修饰的变量,每次操作时遵循下面动作:
从内存取值 ---> 放入寄存器 ---> 操作 --->写回内存
这几个步骤不是原子的操作在任意两个...
分类:
编程语言 时间:
2014-09-28 20:09:16
阅读次数:
379
复杂度:O(n*α(n)) 其中α(x),对于x=宇宙中原子数之和,α(x)不大于4 。(对于nocow里的复杂度我也是醉了)概要:并查集就是一个数组和一行话。应用:图的连通、集合操作、生成树的合并等技巧及注意:并查集是个好东西。维护区间+前缀和:对于一些连续的区间,我们要判断这些区间是否合法,带修...
分类:
其他好文 时间:
2014-09-28 14:42:02
阅读次数:
152
问题描述:
open(pathname, O_RDWR | O_CREAT,0666);就不行吗?为什么好多资料上说要加O_EXCL,说是原子性操作,不加难道就不是了吗?
解答:
如果文件事先已经存在,
open(pathname, O_RDWR | O_CREAT,0666); 打开成功,返回一个大于0的fd
open(pathname, O_RDWR | O_CREAT | O...
分类:
系统相关 时间:
2014-09-27 17:59:20
阅读次数:
316
一、信息系统的开发架构客户层-------显示层-------业务层---------数据层---------数据库1.客户层:客户层就是客户端,简单的来说就是浏览器。2.显示层:JSP/Servlet,用于给浏览器显示。3.业务层:对于数据层的原子操作进行整合。4.数据层:对于数据库进行的原子操作...
分类:
编程语言 时间:
2014-09-26 20:31:18
阅读次数:
177
在上文《.Net中的并行编程-2.ConcurrentQueue的实现与分析》 中解释了无锁的相关概念,无独有偶BCL提供的ConcurrentQueue也是基于原子操作实现, 由于ConcurrentQueue的代码较多所以本文主要分析几个常用操作:入队(EnQueue) 、出队(TryDequ....
分类:
Web程序 时间:
2014-09-26 01:15:57
阅读次数:
245
当在硅中掺入磷P时,P只需要吸收少量的能量,其原子核最外层电子就可以挣脱原子核的束缚,从而形成自由电子,半导体开始导电。此半导体为N型
当在硅中掺入硼B时,硅只需要吸收少量的能量,其核外电子就会去填补周围的“共价键空位”,从而形成空穴。
周围的电子再来填补空穴,如此往复,造成空穴移动的现象。此半导体为P型。
所谓的共价键空位,是指由于B最外层只有三个电子,只能和硅的三个电子形成...
分类:
其他好文 时间:
2014-09-26 01:14:18
阅读次数:
287