摘要: volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v 阅读全文
posted @ 2018-05-17 21:40 十月围城小童鞋 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起,然后再讲述java.util.concurrent.locks包下常用的有哪些类和接口,最后讨论以下一些关于锁的概念方面的东西 阅读全文
posted @ 2018-05-17 21:07 十月围城小童鞋 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如 阅读全文
posted @ 2018-05-17 17:21 十月围城小童鞋 阅读(978) 评论(0) 推荐(0) 编辑
摘要: 还有一种方式,在t3开始前join t2,在t2开始前join t1 阅读全文
posted @ 2018-05-17 16:23 十月围城小童鞋 阅读(225) 评论(0) 推荐(0) 编辑
摘要: B+Tree的定义 B+Tree是B树的变种,有着比B树更高的查询性能,来看下m阶B+Tree特征: 1、有m个子树的节点包含有m个元素(B-Tree中是m-1) 2、根节点和分支节点中不保存数据,只用于索引,所有数据都保存在叶子节点中。 3、所有分支节点和根节点都同时存在于子节点中,在子节点元素中 阅读全文
posted @ 2018-05-17 15:08 十月围城小童鞋 阅读(142) 评论(0) 推荐(0) 编辑
摘要: B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了。B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高。 磁盘IO与预读 磁盘读取依靠的是机械运动,分为寻道时间、旋转延迟、传输时间三个部分,这三个部分耗时相加就是一次磁盘IO的时间,大概9ms左右。这个成本是访问内存的十万 阅读全文
posted @ 2018-05-17 14:59 十月围城小童鞋 阅读(79) 评论(0) 推荐(0) 编辑