记录,分享
发布时间:2017-03-16 12:12:59
DelayQueue实现了BlockingQueue接口和PriorityQueue接口,其泛型类型变量必须实现Delayed接口。 Delayed接口继承自Comparable接口,它又一个getDelay(TimeUnitunit) 方法,代表与此Delayed对象相关的剩余延迟时间。 当元素被加入DelayQueue时,保证队列按照compare实现的比较规则有序(内部拥有一个Pr.........【阅读全文】
发布时间:2017-03-16 12:11:14
在你的应用中有一个列表(List),它被频繁的遍历,但是很少被修改。像“你的主页上的前十个分类,它被频繁的访问,但是每个小时通过Quartz的Job来调度更新”。如果你使用ArrayList来作为该列表的数据结构并且不使用同步(synchronization),你可能会遇到ConcurrentModificationException,因为在你使用Qu.........【阅读全文】
发布时间:2017-03-16 12:10:04
[ConcurrentMap ] |-ConcurrentHashMap |-ConcurrentSkipListMap 一、ConcurrentMap 主要方法 只有以下四个方法,能够保证是原子操作的。 ConcurrentHashMap和 ConcurrentSkipListMap的其他方法无法保证原子性。 1.V putIfAbsent(K key,V value) : 如果不存在key对应的值.........【阅读全文】
发布时间:2017-03-16 12:08:39
一、创建线程并启动 1.两种方式创建一个Thread子类的实例,并调用其start方法创建一个实现Runnable接口的类的实例,并以此实例作为target参数构造一个Thread实例, 2.两种方式的比较将同一个Runnable实例的引用作为多个Thread实例的target构造参数,可以实现资.........【阅读全文】
发布时间:2017-03-16 12:06:49
一、 对于无序键值映射,java提供了HashMap和ConcurrentHashMap这两个线程安全性不同的类。对于有序键值映射,java提供了TreeMap这个线程不安全的类,但是并不存在ConcurrenTreeMap,相应地,java提供了ConcurrentSkipListMap。 ConcurrentSkipListSet是通过ConcurrentSkipListMap实现的,而TreeSet是通过Tr.........【阅读全文】