- 博客(13)
- 资源 (18)
- 问答 (2)
- 收藏
- 关注
原创 JDK并发工具类源码学习系列——SynchronousQueue
SynchronousQueue是一种特殊的阻塞队列,不同于LinkedBlockingQueue、ArrayBlockingQueue和PriorityBlockingQueue,其内部没有任何容量,任何的入队操作都需要等待其他线程的出队操作,反之亦然。如果将SynchronousQueue用于生产者/消费者模式,那么相当于生产者和消费者手递手交易,即生产者生产出一个货物,则必须等到消费者过来取
2015-11-30 19:01:19 3689
原创 数据结构系列——Java后缀树实现代码
上一篇文章介绍了什么是后缀树以及后缀树的应用场景,同时结合Ukkonen算法论文细述了如何在O(n)时间内构建一颗后缀树,这一篇详细介绍如何使用Java实现的Ukkonen后缀树构建算法。
2015-11-27 13:37:59 3279 3
原创 数据结构系列——后缀树(附Java实现代码)
后缀树,说的通俗点就是将一个字符串所有的后缀按照前缀树(Trie树,可参考此篇文章)的形式组织成一棵树。本文章介绍了后缀树的应用以及使用如何使用Java实现Ukkonen算法构建后缀树
2015-11-27 13:34:38 5848
原创 JDK并发工具类源码学习系列——LinkedBlockingQueue
LinkedBlockingQueue是一个基于已链接节点的、范围任意的 blocking queue。此队列按 FIFO(先进先出)排序元素。队列的头部 是在队列中时间最长的元素。队列的尾部 是在队列中时间最短的元素。新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。
2015-11-23 19:04:23 1511
原创 数据结构系列——Trie树
Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。
2015-11-23 15:19:37 4002
原创 JDK并发工具类源码学习系列——PriorityBlockingQueue
PriorityBlockingQueue是一个基于优先级堆的无界的并发安全的优先级队列(FIFO),队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。实现原理PriorityBlockingQueue通过使用堆这种数据结构实现将队列中的元素按照某种排序规则进行排序,从而改变先进先出的队列顺序,提供开发者改变队列中元素的顺序的能力
2015-11-20 17:19:55 4603
原创 数据结构系列——堆
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。
2015-11-19 13:13:20 2608
原创 JDK并发工具类源码学习系列——CopyOnWriteArrayList
CopyOnWriteArrayList是ArrayList的一个线程安全的变体,其中所有可变操作(add、set 等等)都是通过对底层数组进行一次新的复制来实现的。 这一般需要很大的开销,但是当遍历操作的数量大大超过可变操作的数量时,这种方法可能比其他替代方法更 有效。在不能或不想进行同步遍历,但又需要从并发线程中排除冲突时,它也很有用。“快照”风格的迭代器方法在创建迭代器时使用了对数组状态的引用
2015-11-17 14:42:17 1382 1
原创 PythonOS库练习——模拟linux文件管理命令
最近对Python大有兴趣,由于将官网文档看了一遍,但是看完只是简单的了解了Python的语法,而且还只是最基础的语法,所以后续除了了解Python的高级功能外(例外并发机制,锁机制,IO机制等),另一个重要要学习的就是Python的基本类库,如os/sys/datetime等。本篇文章就是针对Python OS标准库的练习,OS库的功能主要是针对操作系统的文件管理,所以练习无外乎就是针对文件进行操
2015-11-17 11:48:52 1455
原创 JDK并发工具类源码学习系列——ConcurrentSkipListMap
ConcurrentSkipListMap在JDK并发工具类使用范围不是很广,它是针对某一特殊需求而设计的——支持排序,同时支持搜索目标返回最接近匹配项的导航方法。一般情况下开发者很少会使用到该类,但是如果你有如上的特殊需求,那么ConcurrentSkipListMap将是一个很好地解决方案。 本文通过对JDK的ConcurrentSkipListMap的代码详细分析,深入分析其实现原理。
2015-11-13 12:19:22 4777
原创 JDK并发工具类源码学习系列——ConcurrentSkipListMap(续)
ConcurrentSkipListMap在JDK并发工具类使用范围不是很广,它是针对某一特殊需求而设计的——支持排序,同时支持搜索目标返回最接近匹配项的导航方法。一般情况下开发者很少会使用到该类,但是如果你有如上的特殊需求,那么ConcurrentSkipListMap将是一个很好地解决方案。 本篇通过对JDK ConcurrentSkipListMap的代码实现进行详细分析,解读其实现原理。
2015-11-13 12:17:11 1261
原创 为Hexo博客文章添加关键字
本文章是为Hexo博客的next主题的文章增加关键字的设定,默认next主题的文章关键字取文章的标签,所以如果想要设置很全的关键字,肯定会造成自己的标签页的标签过多,看着过于杂乱,所以就想将文章的关键字与标签分开,下面做简单的修改即可达到此目的。
2015-11-10 17:10:42 7696
原创 坑爹的Spring数据源——自动提交事务
记一次数据源的自动提交事务带来的烦恼,并通过分析找到JBoss JNDI数据源默认自动提交事务的解决方案
2015-11-10 15:48:53 11642
Spring如何实现针对非单例的Controller进行AOP代理
2017-01-07
学习struts convention报错,搞不定,求支援
2015-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人