[Java concurrent][Collections]】的更多相关文章

同步容器类 同步容器类包括Vector和Hashtable,二者是早期JDK的一部分.以及一些在JDK1.2中添加的可以由Collections.synchronizedXxx等工厂方法创建的. 这些类实现线程安全的方式是,将它们的状态封装起来,并对每个公有方法都进行同步(synchronized),使得每次只有一个线程能访问容器的状态. 同步容器类在一些情况下,可能需要额外的客户端加锁来保护复合操作.eg: public static Object getLast(Vector list) {…
Java concurrent in practice是一本好书,不过太繁冗.本文主要简述第一部分的内容. 多线程 优势 与单线程相比,可以利用多核的能力; 可以方便的建模成一个线程处理一种任务; 与异步模型相比,多线程同步模型更简单; 通过分离界面线程和工作线程, 可用于创建灵敏的用户界面. 劣势 多线程模型下,对象的状态不在受顺序执行的安全保护,而是需要同步. 同步下可能会出现不一致的问题,如死锁,饥饿. 多线程上下文切换开销可能会导致性能下降. 线程安全和同步 线程安全就是正确的同步状态,…
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的.compare(a,b)方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数.equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true. Collections.so…
1.Collections类概述         针对集合操作 的工具类,都是静态方法   2.Collections成员方法         public static <T> void sort(List<T> list):排序 默认情况下是自然顺序.         public static <T> int binarySearch(List<?> list,T key):二分查找         public static <T> T…
java concurrent包的学习(转) http://my.oschina.net/adwangxiao/blog/110188 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完 成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便.而当针对高质量Java多线程并发程序设计时,为防 止死蹦等现象的出现,比如使用java之前的wait().notify()和synchronized等,每每需要考虑性能.死锁.公平性.…
In this Document   Goal   Solution   Overview   Steps in writing Java Concurrent Program   Template Program:   Program Logic   Program Parameters   Database Operations   Setting request Completion Status   Register executable   Register Concurrent Pr…
To prevent Memory Consistency Errors(MCEs), it is good practice to specify synchronized class specifier, and mark all the related methods as synchronized. This solves the MCEs, but not perfectly in its inefficiency. Note if 2 methods marked synchroni…
方法一 public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll) 此方法需要传入一个实现了Comparable接口的对象类的集合 创建实现了Comparable的对象类 public class Student1 implements Comparable<Student1> { private String name; p…
java.lang.Collections 此类完全由在collection上进行操作或返回 collection 的静态方法组成.也就是说Collections提供了对Collection集合操作的一些方法.jdk类似这种的还有几个,例如:Array和Arrays,Object和Objects. Collections类没有子类且构造函数是私有的,也就导致了它的所有对外方法都是静态的. 主要方法 Sort:排序 提供了两种形式: public static <T extends Compara…
今天同事问我怎样将一个列表(list1)拷贝到另一个列表(list2),然后修改新的列表(list2)不会影响到旧的列表(list1),想了一想,这是深拷贝啊. 可是,除了循环new还有别的办法吗,想了又想,自己也是啥都不懂啊,赶紧百度学习一下,于是就找到了java.util.Collections.copy(),一开始还以为这个是个深拷贝呢,没想到还是个浅拷贝.虽然还没找到深拷贝的方法去解决同事的问题,但还是要学习一下这个浅拷贝,毕竟也是有用滴. 先写个单元测试试一下: @Test publi…