SynchronousQueue是一种很特别的BlockingQueue,任何一个添加元素的操作都必须等到另外一个线程拿走元素才会结束。也就是SynchronousQueue本身不会存储任何元素,相当于生产者和消费者手递手直接交易。SynchronousQueue有一个fair选项,如果fair为t...
分类:
编程语言 时间:
2014-08-25 16:39:44
阅读次数:
278
List接口List接口代表一个有序的集合,集合中每个元素都有其相对应的顺序索引。List允许使用重复元素,通过索引来访问指定位置的集合元素。默认以添加元素顺序为索引。相对于Set集合,List可以通过索引来插入,替换,删除元素。List判断两个对象相等的标准是equals方法返回true。使用示例...
分类:
编程语言 时间:
2014-08-22 16:07:49
阅读次数:
255
HashSet是Set接口的实现类,因此,HashSet中的元素也是不能重复的。HashCode判断元素重复的标准时,首先计算新添加元素的hashCode值,当不重复是,则直接加入到该集合中,若发生重复,也称发生了碰撞,则进一步调用equals判断元素是否在逻辑上相同。 package cn.cqu...
分类:
其他好文 时间:
2014-08-17 19:57:02
阅读次数:
258
假如现在有这样一个表单,是添加元素用的。 用户名: 手机号: 生日: 我们不想使用表单submit的方式添加这个元素,我们就想使用ajax提交。以前我们是这样实现的:123456789101112131415161718192021functionaddUser(){...
分类:
Web程序 时间:
2014-08-13 18:20:16
阅读次数:
273
假如现在有这样一个表单,是添加元素用的。 用户名: 手机号: 生日: 我们不想使用表单submit的方式添加这个元素,我们就想使用ajax提交。以前我们是这样实现的:function addUser(){ var user = { uname:$("#uname...
分类:
Web程序 时间:
2014-08-13 00:54:34
阅读次数:
359
这篇文章来说说稍微复杂一些的LinkedBlockingQueue。LinkedBlockingQueue使用一个链表来实现,会有一个head和tail分别指向队列的开始和队列的结尾。因此LinkedBlockingQueue会有两把锁,分别控制这两个元素,这样在添加元素和拿走元素的时候就不会有锁的...
分类:
数据库 时间:
2014-08-11 14:54:02
阅读次数:
258
对于BlockingQueue的具体实现,主要关注的有两点:线程安全的实现和阻塞操作的实现。所以分析ArrayBlockingQueue也是基于这两点。对于线程安全来说,所有的添加元素的方法和拿走元素的方法都会涉及到,我们通过分析offer方法和poll()方法就能看出线程安全是如何实现的。首先来看...
分类:
编程语言 时间:
2014-08-10 21:05:50
阅读次数:
247
想必大家都很熟悉生产者-消费者队列,生产者负责添加元素到队列,如果队列已满则会进入阻塞状态直到有消费者拿走元素。相反,消费者负责从队列中拿走元素,如果队列为空则会进入阻塞状态直到有生产者添加元素到队列。BlockingQueue就是这么一个生产者-消费者队列。BlockingQueue是Queue的...
分类:
编程语言 时间:
2014-08-09 18:09:28
阅读次数:
255
两个栈实现队列+两个队列实现栈----java
一.两个栈实现一个队列
思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好再栈顶,出栈;若要给队列添加元素,即先进sack1,要出队时,若stack2不为空就出栈,为空时就把stack1全部进栈到stack2
二.两个队列实现一个栈
ps:图...
分类:
编程语言 时间:
2014-08-08 01:59:45
阅读次数:
292
在C#编程中经常需要对一些键值对进行处理,一般我们可以使用字典或哈希表来实现。和字典比起来,哈希表占用系统资源更少更为方便。 下面举例说明哈希表的常用方法:1, 添加元素;2, 删除元素;3, 遍历;4, 查询。 步骤阅读 工具/原料Microsoft Visual Studio 2010方法/.....
分类:
其他好文 时间:
2014-08-06 18:45:02
阅读次数:
307