背景及原理 数据库的备份是灾难恢复的最后一道屏障,不管什么类型的数据库都需要设置数据库备份,MongoDB也不例外。MongoDB 3.0 后 ,数据库可以采用Wiredtiger存储引擎后(3.2 版本默认),在此环境下通过mongodump 备份后,产生的备份文件要远大于数据存储文件的大小。此外 ...
分类:
数据库 时间:
2018-09-05 21:44:14
阅读次数:
248
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代 ...
分类:
编程语言 时间:
2018-08-30 19:55:26
阅读次数:
173
一、前沿: 希尔排序(Shell Sort)的名称源于它的发明者Donald Shell,该算法是冲破了二次元时间屏障的算法之一。它通过比较相距一定间隔的元素工作,各趟所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟为止,因此希尔排序有时也叫做缩减增量排序(diminishing inc ...
分类:
编程语言 时间:
2018-08-08 23:41:22
阅读次数:
321
volatile关键字 volatile关键字是轻量级的 synchronized 当变量被声明为 volatile的时候,在对volatile变量进行写操作时候,汇编指令会插入一个 Lock前缀指令,这个指令会引发两件事情。 1. 将当前处理器缓存行写回到系统内存。 2. 这个写回内存的操作会是其 ...
分类:
其他好文 时间:
2018-08-07 01:34:44
阅读次数:
172
volatile、内存屏障/内存栅栏、Java是如何实现跨平台的、线程状态及转化、 List接口、Set接口、Map接口区别 List三个实现类:LinkedList、ArrayList、Vector Set接口两个实现类:HashSet(底层由HashMap实现)、LinkedHashSet So ...
分类:
其他好文 时间:
2018-07-31 21:47:53
阅读次数:
134
Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-从一个错误的双重校验锁代码谈一下volatile关键字 Java多线程编程-(4)-线程本地ThreadLocal的介绍与 ...
分类:
编程语言 时间:
2018-07-28 16:42:19
阅读次数:
197
· 1. 等待多线程完成的CountDownLatch 构造函数接收一个int类型的参数作为计数器,如果想等待N个点,就传入N。当调用CountDownLatch的countDown方法时,N就会减一,直至减为零。使用await方法等待,当N的值变为零,执行await的线程继续执行。 2. 同步屏障 ...
分类:
编程语言 时间:
2018-07-26 16:22:25
阅读次数:
135
前言 CyclicBarrier它是什么?一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点。类似于朋友之间联系要在中午聚个会,几个朋友全部到齐后才开始喝酒吃菜。 源码 CyclicBarrier属性和构造器 CyclicBarrier方法 1. await方法 在所有参与者都已经在此 ...
分类:
其他好文 时间:
2018-07-25 01:09:17
阅读次数:
155
今天继续学习其它的同步工具:CyclicBarrier与CountDownLatch 一、CyclicBarrier CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必 ...
分类:
编程语言 时间:
2018-07-13 10:20:00
阅读次数:
180
CyclicBarrier的介绍和源码分析 CyclicBarrier的字母意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫做同步点)时被阻塞,直到最后一个线程到达屏障,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过Cycl ...
分类:
编程语言 时间:
2018-07-11 14:37:29
阅读次数:
299