事务 事务由一个或多个sql语句组成一个整体,如果所有的语句执行成功那么修改将会全部生效,如一条sql语句将销量+1,下一条再+1,倘若第二条失败,那么销量将撤销第一条sql语句的+1操作,只有在该事务中所有的语句都执行成功才会将修改加入到数据库中。 特性: 事务具体四大特性,也就是经常说的ACID ...
分类:
数据库 时间:
2018-05-08 20:55:50
阅读次数:
191
一、Redis基础1、安装启动Redis1.1去pkgs.org下载rpm包[root@node1~]#wgethttp://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/redis-3.0.7-4.el6.art.i686.rpm1.2yum本地安装[root@node1~]#yumlocalinstallredis-3.0.7-4.
分类:
其他好文 时间:
2018-05-07 21:04:36
阅读次数:
248
folly无锁队列是facebook开源的一个无所队列,使用的是单向链表,通过compare_exchange语句实现的多生产多消费的队列,我曾经花了比较多的时间学习memory_order的说明,对release-acquire语义,自认为还是比较了解。如果一个atomic对象使用std::mem ...
分类:
其他好文 时间:
2018-05-07 00:00:06
阅读次数:
407
Disruptor作者,介绍Disruptor能每秒处理600万订单。这是一个可怕的数字。 disruptor之所以那么快,是因为内部采用环形队列和无锁设计。使用cas来进行并发控制。通过获取可用下标来对事件发布和消费 下标通过cas控制(Atomic) disruptor组成部分 1.Disrup ...
分类:
其他好文 时间:
2018-05-06 13:34:37
阅读次数:
270
一 .概述 在我们之前的计数程序之中,我们知道只要保证count++是一个原子性的操作就能保证程序的线程安全性. 当然这种常用的功能在jdk5中就出现了,这就是原子类. 原子类都是JUC包下atomic之中,类的数量比较多. 二 . 原子类的介绍 原子类的操作之中可以保证是线程安全的,当我们的应用之 ...
分类:
其他好文 时间:
2018-05-06 01:40:32
阅读次数:
165
减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。1. 无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。2. CAS算法。Java的Atomic包使用CAS算法 ...
分类:
其他好文 时间:
2018-05-04 12:05:19
阅读次数:
173
1. 原子操作 原子操作指的是在执行过程中不会被别的代码路径所中断的操作。常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v); //返回原子变量的值void atomic_inc(atomic ...
分类:
其他好文 时间:
2018-05-01 17:41:33
阅读次数:
177
RWMutex:是基于Mutex实现的读写互斥锁,一个goroutine可以持有多个读锁或者一个写锁,同一时刻只能持有读锁或者写锁 ...
分类:
其他好文 时间:
2018-04-30 22:06:53
阅读次数:
136
在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会 遇到两个问题 ...
分类:
其他好文 时间:
2018-04-27 13:25:32
阅读次数:
208
分布式数据库当然也有主键的需求,但是为什么不直接使用uuid作为主键呢?作为曾经被这个问题困惑过的人,试着回答一下 1. UUID生成速率低下 Java的UUID依赖于SecureRandom.nextBytes方法,而SecureRandom又依赖于操作系统提供的随机数源, 在Linux系统下,它 ...
分类:
数据库 时间:
2018-04-26 12:12:29
阅读次数:
231