
- 一 线程安全类:
- 1. StringBuffer
- 2. vector
- 3. Hashtable
- 二 Collections集合工具类,含有线程安全集合类方法的使用:(以下是部分举例)
- 三 以代码内容形式讲解:
- 1. 创建一个ThreadDemo测试类(仔细理解,很重要!!!):
底层源码都加了synchronized关键字修饰
1. StringBuffer- 线程安全可变字符串序列
- 从版本JDK 5开始,这个类别已经被一个等级类补充了,这个类被设计为使用一个线程StringBuilder 。 StringBuilder应该使用StringBuilder类,因为它支持所有相同的 *** 作,但它更快,因为它不执行同步。
- 图文:
- 从Java 2平台v1.2,这个类被改造为实现List接口,使其成为成员Java Collections Framework 。 与新集合实现不同, Vector是同步的。 如果不需要线程安全的实现,建议使用ArrayList代替Vector 。
- 图文:
- 该类实现了一个哈希表,它将键映射到值。 任何非null对象都可以用作键值或值。
- 从Java 2平台v1.2,这个类被改造为实现Map接口,使其成为成员Java Collections Framework 。 与新的集合实现不同, Hashtable是同步的。 如果不需要线程安全的实现,建议使用HashMap代替Hashtable 。 如果需要线程安全的并发实现,那么建议使用ConcurrentHashMap代替Hashtable 。
- 图文:
| 方法名 | 说明 |
|---|---|
| static List synchronizedList(List list); | 返回由指定列表支持的同步(线程安全)列表。 |
| static | 返回由指定地图支持的同步(线程安全)映射。 |
| static Set synchronizedSet(Set s); | 返回由指定集合支持的同步(线程安全)集。 |
package Demo;
import java.util.*;
public class ThreadDemo {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();//安全类
StringBuilder sb2 = new StringBuilder();
Vector<String> v = new Vector<>();//安全类
ArrayList<String> array = new ArrayList<>();
// static List synchronizedList(List list) 返回由指定列表支持的同步(线程安全)列表。
//将线程不安全的ArrayList()集合类变成线程安全的集合类
List<String> list = Collections.synchronizedList(new ArrayList<String>());
Hashtable<String, String> ht = new Hashtable<>();//安全类
HashMap<String, String> hm = new HashMap<>();
// static Map synchronizedMap(Map m) 返回由指定地图支持的同步(线程安全)映射。
//将线程不安全的HashMap()集合类变成线程安全的集合类
Map<String, String> sm = Collections.synchronizedMap(new HashMap<String, String>());
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)