zoukankan      html  css  js  c++  java
  • StringBuffer和StringBuilder的线程安全问题分析

    StringBuffer 字符串变量(线程安全 在多线程的状况能够保证线程的安全运行)
    StringBuilder 字符串变量(非线程安全 运行更加迅速)

    /*对待线程安全问题,我们可以把一个字符串的改变看成两部来实现,首先就是字符串的索引位置存放元素
    * 然后继续增大Size的值 在单线程的情况下如果size等于0那么添加一个元素的步骤就是将元素放在位置0,然后size=1
    * 在单线程中这样做是没有任何问题的
    * 但是:多线程的话 -> 线程a将元素放在位置0 但是此时的线程B也在抢夺CPU 假设抢夺成功 那么这个时候a线程的size还没有运行到增加的那一步
    * 同事,b线程在位置0又放入一个元素,这就回将a线程放入的元素覆盖掉
    * 所以:我们来看看实际的情况就是两个元素都是放在位置0但是实际元素只有一个,size却等于2 这就造成了线程不安全的问题*/


    参阅了下文作者的分析

  • 相关阅读:
    TSQL语句
    约束
    数据库创建
    递归
    函数
    结构体
    集合
    jquery中的select
    正则表达式
    多表单提交
  • 原文地址:https://www.cnblogs.com/LWF6869/p/12417062.html
Copyright © 2011-2022 走看看