当前位置: > 财经>正文

怎么理解StringBuffer线程安全,StringBuilder线程不安全 保险金信托10和20的区别在哪里呢怎么理解

2023-08-26 11:12:14 互联网 未知 财经

怎么理解StringBuffer线程安全,StringBuilder线程不安全

首先要明白两个概念,线程安全与线程不安全。

线程安全:就是多线程访问时,采用了锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染(脏读等) 考虑一个场景,A和B两个线程同时操作缓存中的一条数据,A线程对数据进行自加处理,B线程对数据进行校验,如果校验不过,就清除数据。 非线程安全:就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得的数据是脏数据。 Java API的Stringbuffer 和 HashTable是在较低版本的JDK中提供的。随着软件项目越来越负责,系统对于性能要求越来越高,然而线程的同步访问对系统性能有很大的影响,所以才会有效率更高的StringBuilder和HashMap的产生。当然在使用这些非线程安全的集合时,线程安全问题就需要开发人员自己控制了。

下面就从他们的方法开始分析。

StringBuilder中的append方法

public StringBuilder append(String str) {   super.append(str);   return this; }

SringBuffer的append方法,为了实现同步,很多方法使用lSynchronized修饰

public synchronized StringBuffer append(String str) {   toStringCache = null;   super.append(str);   return this; }

从字符串的拼接和读取来看࿰

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。