MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。MongoDB是一款分布式文档数据库,支持类似关型数据库的主从结构,文档以二进制Json形式存储,无锁,无事务,有索引。1. MongoDB的启动与停止 MongoDB的启动之前已经 ...
分类:
数据库 时间:
2016-05-20 16:00:01
阅读次数:
231
一.CAS算法 Compare And Swap,CAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。最后,CAS返回当前V的真实值。 ...
分类:
其他好文 时间:
2016-04-24 12:40:14
阅读次数:
240
一个在线2k的游戏,每秒钟并发都吓死人。传统的hibernate直接插库基本上是不可行的。我就一步步推导出一个无锁的数据库操作。 1. 并发中如何无锁。 一个很简单的思路,把并发转化成为单线程。Java的Disruptor就是一个很好的例子。如果用java的concurrentCollection类 ...
分类:
数据库 时间:
2016-04-11 18:26:24
阅读次数:
201
linux支持的哪些操作是具有原子特性的?知道这些东西是理解和设计无锁化编程算法的基础。 __sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去看原文。Multithreaded simple data type access and atom
分类:
系统相关 时间:
2016-03-08 10:34:29
阅读次数:
254
虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以然,因此,使用ThreadLocal的程序员很多时候会被它导入到陷进中去,其实java很多高级机制系列的很多东西都是一把双刃剑,也
分类:
编程语言 时间:
2016-03-02 10:51:00
阅读次数:
216
除了提供基本数据类型外,JDK还为我们准备了数组等复合结构。当前可用的原子数组有:AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray,分别表示整数数组、long型数组和普通的对象数组。
分类:
编程语言 时间:
2016-01-24 22:15:09
阅读次数:
182
上一篇记录了几种环形缓冲区的设计方法和环形缓冲区在生产者消费者模式下的使用(并发有锁),这一篇主要看看怎么实现并发无锁。0、简单的说明首先对环形缓冲区做下说明:环形缓冲区使用改进的数组版本,缓冲区容量为2的幂缓冲区满阻塞生产者,消费者进行消费后,缓冲区又有可用资源,由消费者唤醒生产者缓冲区空阻塞消费...
分类:
其他好文 时间:
2016-01-20 22:21:56
阅读次数:
223
转自: http://book.51cto.com/art/201502/466288.htm 为什么我们需要MQ?而这就是MQ :一个高效的可嵌入库,它解决了大部分应用程序需要解决的问题,变得在网络上有良好的可伸缩性,而没有多少成本。具体做法是:它在后台线程异步处理I/O。这些线程使用无锁数据结构...
分类:
其他好文 时间:
2016-01-17 14:52:51
阅读次数:
188
zeromq这个库主要用于进程通信,包括本地进程、网络通信,涉及到一些基础知识,主要包括管道通信,socket编程的内容,反应器模式(使用IO多路复用实现),无锁队列这几块比较重要的部分,下面的几个链接是这几块内容的学习笔记,有了这些知识,能比较好的理解这个开源库1、socket原理详解2、I/O多...
分类:
其他好文 时间:
2016-01-12 01:04:29
阅读次数:
228
注:本系列博客主要参考于《分布式Java应用:基础与实践》,林昊 著1、常用的并发集合类ConcurrentHashMap:线程安全的HashMap的实现CopyOnWriteArrayList:线程安全且在读操作时无锁的ArrayListCopyOnWriteArraySet:基于CopyOnWr...
分类:
编程语言 时间:
2016-01-08 13:21:17
阅读次数:
183