线程安全类

线程安全类,第1张

线程安全类
  • 一 线程安全类:
    • 1. StringBuffer
    • 2. vector
    • 3. Hashtable
  • 二 Collections集合工具类,含有线程安全集合类方法的使用:(以下是部分举例)
  • 三 以代码内容形式讲解:
    • 1. 创建一个ThreadDemo测试类(仔细理解,很重要!!!):

一 线程安全类:

底层源码都加了synchronized关键字修饰

1. StringBuffer
  • 线程安全可变字符串序列
  • 从版本JDK 5开始,这个类别已经被一个等级类补充了,这个类被设计为使用一个线程StringBuilder 。 StringBuilder应该使用StringBuilder类,因为它支持所有相同的 *** 作,但它更快,因为它不执行同步。
  • 图文:
2. vector
  • 从Java 2平台v1.2,这个类被改造为实现List接口,使其成为成员Java Collections Framework 。 与新集合实现不同, Vector是同步的。 如果不需要线程安全的实现,建议使用ArrayList代替Vector 。
  • 图文:
3. Hashtable
  • 该类实现了一个哈希表,它将键映射到值。 任何非null对象都可以用作键值或值。
  • 从Java 2平台v1.2,这个类被改造为实现Map接口,使其成为成员Java Collections Framework 。 与新的集合实现不同, Hashtable是同步的。 如果不需要线程安全的实现,建议使用HashMap代替Hashtable 。 如果需要线程安全的并发实现,那么建议使用ConcurrentHashMap代替Hashtable 。
  • 图文:
二 Collections集合工具类,含有线程安全集合类方法的使用:(以下是部分举例)
方法名说明
static List synchronizedList(List list);返回由指定列表支持的同步(线程安全)列表。
static Map synchronizedMap(Map m);返回由指定地图支持的同步(线程安全)映射。
static Set synchronizedSet(Set s);返回由指定集合支持的同步(线程安全)集。
三 以代码内容形式讲解: 1. 创建一个ThreadDemo测试类(仔细理解,很重要!!!):
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>());
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/795365.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-06
下一篇2022-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存