2016-09-30 ruki
原子操作,线程间交互数据最细粒度的同步操作,它可以保证线程间读写某个数值的原子性。 由于不需要加重量级的互斥锁进行同步,因此非常轻量,而且也不需要在内核间来回切换调度,效率是非常高的。。 那如何使用原子操作了,各个平台下都有相关api提供了支持,并且向gcc、clang这些编译器,也提供了编译器级的__builtin接口进行支持 windows的Interlockedxxx和Interlockedxxx64系列api macosx的OSAtomicXXX系列api gcc的__sync_val_compare_and_swap和__sync_val_compare_and_swap_8等__builtin接口 x86和x86_ 继续阅读 »
2013-11-20 veryyoung
/** * 【数据结构类】一种计算机,其有如下原子功能: * 1.赋值 * 2.+1操作 ++a;a+1; * 3.循环,但是只支持按次数的循环for(变量名)(循环里面对变量的修改不影响 循环次数) * 4.只能处理0和正整数 * 5.函数调用 fun(参数列表) * 在这个计算机上编程实现变量的加法减法,乘法 **/ //add operation fun_add(a,b) { for(b) ++a; return a; } //redu 继续阅读 »
2017-12-12 Eric Wang
Lucene 事务 有过数据库经验的人都知道ACID特性,原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。由于隔离性的存在,对于新的变更包括添加、修改、删除,如果不进行 commit 的话,那么在读端是无法看到数据的变化的,在这里简单的介绍下 Lucene 中的事务,即ACID。 原子性 当你在一次 IndexWriter 的 session 中做操作(增加,删除文档),然后 commit,要么你的所有的操作修改都是可见的(commit 成功),要么所有的操作修改都不可见(commit 失败),绝不会处于某种中间状态。有些 继续阅读 »
2015-01-01 walter lee
一、事务的4个基本特征 原子性 (Atomicity ) 要么全执行,要么都不执行。 一致性( Consistency ) 事务在系统完整性中实施一致性,这通过保证系统的任何事务最后都处于有效状态来实现。 隔离性 ( Isolation) 在隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。 持久性 (Durabilily) 持久性意味着一旦事务执行成功,在系统中产生的所有变化将是永久的。 二、为什么需要对事务并发控制 如果不对事务进行并发控制,我们看看数据库并发操作是会有那些异常情形 继续阅读 »