Java基础——多线程之线程安全的类


线程安全的类

StringBuffer

1.线程安全,可变的字符序列

2.从jDK5开始,被StringBuilder替代。通常应该使用Stringbuilder类,因为它支持所有相同的操作,但是它更快,因为它不执行同步

Vector

1.从Java2平台v1.2起,该类改进了List接口,使其成为Java CollectionsFramework的成员。与新的集合实现不同,Vector被同步,

如果不需要线程安全的实现,建议使用ArrayList代替Vector,但多线程也不会用Vector,它被一个方法代替了

//static  List synchronizedList(List list)
//返回由指定列表支持的同步(线程安全)列表。
ArrayList al=new ArrayList();
List strings = Collections.synchronizedList(new ArrayList());

Hashtable

1.该类实现了一个哈希表,它将键映射到值。任何非null对象都可以用作键和值

2.从Java2平台v1.2起,该类进行了改进,实现了Map接口,使其成为Java Collections Framework的成员

与新的集合实现不同,Hashtable被同步,如果不需要线程安全的实现,建议使用HashMap代替Hashtable,但多线程也不会用Hashtable,它被一个方法代替了

//static  Map synchronizedMap(Map m)
//返回由指定地图支持的同步(线程安全)映射
HashMap hm=new HashMap();
Map Map = Collections.synchronizedMap(new HashMap());