Java线程安全的常用类_动力节点Java学院整理

 更新时间:2017年06月02日 14:36:01   投稿:mrr  
在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类

线程安全类

在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:

vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。

statck:堆栈类,先进后出

hashtable:就比hashmap多了个线程安全

除了这些之外,其他的集合大都是非线程安全的类和接口。

线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。

其他:

1. hashtable跟hashmap的区别

hashtable是线程安全的,即hashtable的方法都提供了同步机制;hashmap不是线程安全的,即不提供同步机制 ;hashtable不允许插入空值,hashmap允许!

2. 多线程并发修改一 个集合怎么办?

用老的Vector/Hashtable类

StringBuffer是线程安全,而StringBuilder是线程不安全的。对于安全与不安全没有深入的理解情况下,易造成这样的错觉,如果对于StringBuffer的操作均是线程安全的,然而,Java给你的保证的线程安全,是说它的方法是执行是排它的,而不是对这个对象本身的多次调用情况下,还是安全的。看看下边的例子,在StringBufferTest中有一个数据成员contents它是用来扩展的,它的每一次append是线程安全的,但众多次append的组合并不是线程安全的,这个输出结果不是太可控的,但如果对于log和getContest方法加关键字synchronized,那么结果就会变得非常条理,如果换成StringBuider甚至是append到一半,它也会让位于其它在此基础上操作的线程

以上所述是小编给大家介绍的Java线程安全的常用类_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Spring中的@ExceptionHandler异常拦截器

    Spring中的@ExceptionHandler异常拦截器

    这篇文章主要介绍了Spring中的@ExceptionHandler异常拦截器,Spring的@ExceptionHandler可以用来统一处理方法抛出的异常,给方法加上@ExceptionHandler注解,这个方法就会处理类中其他方法抛出的异常,需要的朋友可以参考下
    2024-01-01
  • Java根据正整数的位数并逆序打印出各位数字

    Java根据正整数的位数并逆序打印出各位数字

    给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字,需要的朋友可以参考下
    2017-02-02
  • Java实现消消乐中的消除功能

    Java实现消消乐中的消除功能

    这篇文章主要为大家详细介绍了Java实现消消乐中的消除功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 基于Java并发容器ConcurrentHashMap#put方法解析

    基于Java并发容器ConcurrentHashMap#put方法解析

    下面小编就为大家带来一篇基于Java并发容器ConcurrentHashMap#put方法解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java中的泛型详解

    Java中的泛型详解

    这篇文章主要介绍了Java中的泛型详解,本文讲解了泛型类或接口、从泛型类派生子类、伪泛型、类型通配符、通配符的上限、通配符的下限、擦除和转换等内容,需要的朋友可以参考下
    2015-04-04
  • 实例讲解JAVA 模板方法模式

    实例讲解JAVA 模板方法模式

    这篇文章主要介绍了JAVA 模板方法模式的的相关资料,文中示例代码非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 教你在SpringBoot中管理多环境配置文件

    教你在SpringBoot中管理多环境配置文件

    在项目开发中,一般会分为开发环境,测试环境和生产环境.如果总是在一个文件中修修改改,难免会出现错误,尤其是在交接的过程中,一旦出现问题,轻则丢失绩效,重则需要删库跑路.本文则带大家详细了解怎么管理多环境配置文件,需要的朋友可以参考下
    2021-05-05
  • springboot如何开启一个监听线程执行任务

    springboot如何开启一个监听线程执行任务

    这篇文章主要介绍了springboot如何开启一个监听线程执行任务问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Java 高并发二:多线程基础详细介绍

    Java 高并发二:多线程基础详细介绍

    本文主要介绍Java 高并发多线程的知识,这里整理详细的资料来解释线程的知识,有需要的学习高并发的朋友可以参考下
    2016-09-09
  • Maven导入本地jar包的实现步骤

    Maven导入本地jar包的实现步骤

    本文主要介绍了Maven导入本地jar包的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论