ConcurrentLinkedQueue是Queue的一个线程安全实现。先来看一段文档说明。一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列获取操作从队列头...
分类:
编程语言 时间:
2014-12-03 00:08:04
阅读次数:
273
有一段时间没有更新了。接着上节继续吧。Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(Link...
分类:
编程语言 时间:
2014-12-03 00:07:50
阅读次数:
216
android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库的版本进行管理的方法:getWriteableDatabase() 创建或打开数据库可以读写、getReadableDatabase()创建或打开数据库继承 SQLiteOpenHelper实现:1....
分类:
数据库 时间:
2014-12-03 00:06:53
阅读次数:
461
一、MyBatis简介MyBatis是一个基于Java的持久层框架,阿里巴巴、慧点科技等多家知名软件公司都使用MyBatis。与Hibernate相比,其具有以下几个特点:1、在XML文件中配置SQL语句,实现了SQL语句与代码的分离,给程序的维护带来了很大便利。2、因为需要程序员自己去编写SQL语...
分类:
其他好文 时间:
2014-12-03 00:04:33
阅读次数:
381
线程池任务执行结果这一节来探讨下线程池中任务执行的结果以及如何阻塞线程、取消任务等等。1packageinfo.imxylz.study.concurrency.future;23publicclassSleepForResultDemoimplementsRunnable {45staticboo...
分类:
编程语言 时间:
2014-12-03 00:01:56
阅读次数:
584
在上一节中详细分析了LinkedBlockingQueue的实现原理。实现一个可扩展的队列通常有两种方式:一种方式就像LinkedBlockingQueue一样使用链表,也就是每一个元素带有下一个元素的引用,这样的队列原生就是可扩展的;另外一种就是通过数组实现,一旦队列的大小达到数组的容量的时候就将...
分类:
编程语言 时间:
2014-12-03 00:01:43
阅读次数:
488
本小节是《并发容器》的最后一部分,这一个小节描述的是针对List/Set接口的一个线程版本。在《并发队列与Queue简介》中介绍了并发容器的一个概括,主要描述的是Queue的实现。其中特别提到一点LinkedList是List/Queue的实现,但是LinkedList确实非线程安全的。不管Bloc...
分类:
编程语言 时间:
2014-12-03 00:00:31
阅读次数:
413
一、mongodb mongodb是一种开源的,免费的非关系型数据库(NoSql)。它具有速度快使用简单,数据格式与json对应,等特点,最大的特点在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现对数据库的操作。mongodb下载地址为:http://www.m....
分类:
数据库 时间:
2014-12-02 23:59:58
阅读次数:
436
从这一节开始介绍锁里面的最后一个工具:读写锁(ReadWriteLock)。ReentrantLock 实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念。前面的章节中一直在强调这个特点。显然这个特点在一定程度上面减低了吞吐量,实际上独占锁是一种保守的锁策略,在这种情况下任何...
分类:
编程语言 时间:
2014-12-02 23:59:35
阅读次数:
527
在上一篇中介绍了HashMap的原理,这一节是ConcurrentMap的最后一节,所以会完整的介绍ConcurrentHashMap的实现。ConcurrentHashMap原理在读写锁章节部分介绍过一种是用读写锁实现Map的方法。此种方法看起来可以实现Map响应的功能,而且吞吐量也应该不错。但是...
分类:
编程语言 时间:
2014-12-02 23:57:49
阅读次数:
324