设计线程安全的类:
在设计线程安全类的过程中,需要包含以下三个基本要素:
找出构成对象状态的所有变量找出约束状态变量的不变性条件建立对象状态的并发访问策略
如果不了解对象的不变性条件与后验条件,那么就不能确保线程安全性。要满足在状态变量的有效值或状态转换上的各种约束条件,就需要借助于原子性与封装性。
如果在操作中包含有基于状态的先验条件,那么这个操作...
分类:
编程语言 时间:
2014-08-24 20:55:43
阅读次数:
162
1、redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis...
在并发处理应用中,一般使用锁的方式来解决竞争问题,但锁的效率比较低,因此,在高并发处理中,无锁队列成为应用的需要。CAS无锁算法主要依赖于处理器的支持,绝大多数处理器都支持:
X86平台:CMPXCHG 汇编指令。
在一个指令周期内执行完成,因此是原子性的。
这一原理性操作过程如果采用C描述如下:
intcompare_and_swap (int* reg, int old...
分类:
其他好文 时间:
2014-08-21 19:32:34
阅读次数:
207
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub MutiThread t=new MutiThread(); Thread t1=new Thread...
分类:
编程语言 时间:
2014-08-21 14:42:14
阅读次数:
241
在Java并发包中有这样一个包,java.util.concurrent.atomic,该包是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全。下面以AtomicInteger来分析一下其实现过程。/**
* Atomically increments by one the current value.
*
* @return the upda...
分类:
编程语言 时间:
2014-08-18 22:04:52
阅读次数:
309
mysql优化要注意哪些地方?1 数据库表的设计要满足三范式2 sql语句优化(select语句)3 数据库配置(最大连接数,mysql缓存,字符集,默认数据库存储引擎)4 服务器配置澳门赌场玩法表的三范式1NF 一条记录要具有原子性,不可再分割.(关系型数据库自动满足)2NF 一条记录要具有唯一性...
分类:
数据库 时间:
2014-08-17 11:36:22
阅读次数:
249
概念:在数据中事务是工作的逻辑单元,一个事务是有一个获多个完成一组的相关行为的Sql语句组成。通过事务机制确保这一组sql语句所作的操作要么完全执行成功,要么一点也不执行。主要特征:确保数据库的完整性事务的ACID特性:A是事务的原子性:事务中包含的所有操作要么全做,要么全不做,也就是说所有的活动在...
分类:
数据库 时间:
2014-08-11 23:52:53
阅读次数:
276
事务的原子性事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据改操作要全部执行,要么全部不执行。这种特性称为原子性。 事务的原子性要求,如果把一个事务看作是一个程序,它要么完整的被执行,要么完全执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为...
分类:
其他好文 时间:
2014-08-10 10:15:50
阅读次数:
209
转至网络:事务性消息传递发送和接收应用程序表示要在一个事务范围内发送或检索消息,这称为事务性消息传递。在事务范围之外发送或检索消息称为非事务性消息传递。仅当采用一种使所有任务(包括非消息队列操作)全部成功或全部失败的方式执行任务时,才使用事务性消息。事务的特点体现在其ACID(原子性、持续性、隔离性...
分类:
其他好文 时间:
2014-08-07 18:35:00
阅读次数:
219
InterLockedIncrement and InterLockedDecrement实现数的原子性加减。什么是原子性的加减呢?举个例子:如果一个变量 Long value =0;首先说一下正常情况下的加减操作:value+=1;1:系统从Value的空间取出值,并动态生成一个空间来存储取出来的...