StringBuilder是不是线程安全的?
测试条件:
开启2个并行执行任务,往同一个StringBuilder对象写入值
测试代码:
static int maxNum = ;
static StringBuilder sbIsThreadSafe = new StringBuilder();
static void Main(string[] args)
{
//迭代次数
int iterationNum = ;
CodeTimer.Initialize();
CodeTimer.Time("StringBuilder是否是线程安全的呢?", iterationNum, new Action(SBIsThreadSafe));
//Console.Write(sbIsThreadSafe.ToString());
Console.Read();
}
private static void SBIsThreadSafe()
{
Parallel.For(, maxNum / , (i) =>
{
sbIsThreadSafe.Append(i.ToString());
});
Parallel.For(maxNum / + , maxNum, (i) =>
{
sbIsThreadSafe.Append(i.ToString());
});
}
测试结果:

结论:
StringBuilder是线程安全的
StringBuilder是不是线程安全的?的更多相关文章
- 为什么StringBuilder是线程不安全的?StringBuffer是线程安全的?
面试中经常问到的一个问题:StringBuilder和StringBuffer的区别是什么? 我们非常自信的说出:StringBuilder是线程安全的,StirngBuffer是线程不安全的 面试官 ...
- StringBuilder的线程为什么不安全
StringBuffer和StringBuilder的区别在哪里? StringBuffer是线程安全的,StringBuilder是线程不安全的. 那么StringBuilder不安全在哪里?在想这 ...
- StringBuffer(线程安全)StringBuilder(非线程安全)
StringBuffer属于线程安全,相对为重量级 StringBuilder属于非线程安全,相对为轻量级 线程安全的概念: 网络编程中许多线程可能会同时运行一段代码.当每次运行结果和单独线程运行的结 ...
- StringBuilder为什么线程不安全(面试必问)
文章转载自:https://juejin.im/post/5d6228046fb9a06add4e37fe 作者:千山qianshan 1.引言 周五去面试又被面试的一个问题问哑巴了 面试官:Stri ...
- 数据结构(逻辑结构,物理结构,特点) C#多线程编程的同步也线程安全 C#多线程编程笔记 String 与 StringBuilder (StringBuffer) 数据结构与算法-初体验(极客专栏)
数据结构(逻辑结构,物理结构,特点) 一.数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关.逻辑结构包括: 集合 数 ...
- 手把手实例对比String、StringBuilder字符串的连接效率及StringBuilder和StringBuffer线程安全的比较
一.字符串连接的效率问题 使用String连接字符串时为什么慢? 小知识点 java中对数组进行初始化后,该数组所占的内存空间.数组长度都是不可变的. 创建一个字符串,为字符串对象分配内存空间,会耗费 ...
- StringBuffer与StringBuilder的简单理解
联系:两者都适用于字符串的操作,都可以随便对字符串的内容进行变更操作,都继承至AbstractStringBuilder. 区别:StringBuffer是线程安全的,方法都加了synchronize ...
- JAVA中的线程安全与非线程安全
原文:http://blog.csdn.net/xiao__gui/article/details/8934832 ArrayList和Vector有什么区别?HashMap和HashTable有什么 ...
- String、StringBuffer和StringBuilder的深入解析
今天闲来无事,整理了下平时记录在印象笔记里的java开发知识点,整理到String,StringBuffer以及StringBuilder的区别时突然又产生了新的疑惑,这些区别是怎么产生的?温故为何能 ...
随机推荐
- CloudStack API编程指引
原文地址:https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+API+Coding+Guidelines 前言 本文阐述 ...
- php----浅谈一下empty isset is_null的用处
} } { } { } } } { } { } is_null():判断变量是否为null if ($a){} 那这个未声明变量会报noti ...
- 动态修改ActionBar Menu的显示
应用场景: 在主Activity中,采用InstrumentedActivity侧边栏的方式,侧边栏的每一项对应一个Fragment,要实现不同的Fragment动态显示与隐藏ActionBar Me ...
- Redhat Enterprise Linux中如何关闭SELinux?
转自http://www.cnitblog.com/lywaml/archive/2005/06/21/468.html 红帽企业 Linux 4 包括了一个 SELinux 的实现.SELinux ...
- 【转】repo 的一些用法和理解-不错
原文网址:http://blog.csdn.net/yasin_lee/article/details/5975068 repo的用法(zz) 注:repo只是google用Python脚本写的调用g ...
- linux----设置、添加别名(alias,unalias)
以下的说明针对centOS. 查看当前的别名 在命令行下,直接输入alias来查看. 添加临时的别名 方法为:alias[别名]=[指令名称] 该方法只是临时的,仅对当前终端有效,因此重启系统或在其他 ...
- spring bean初始化和销毁
spring bean的创建与消亡由spring容器进行管理,除了使用<bean><property/></bean>进行简单的属性配置之外,spring支持更人性 ...
- poj 2411 Mondriaan's Dream_状态压缩dp
题意:给我们1*2的骨牌,问我们一个n*m的棋盘有多少种放满的方案. 思路: 状态压缩不懂看,http://blog.csdn.net/neng18/article/details/18425765 ...
- Java I/O 模型的演进
什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O 模型讲起,介绍了5种常见的 I/O 模型.而后再引出 Java 的 I/O 模型的演进过程,并用实例说明如何选择合适的 ...
- iOS AFNetworking 详解
1. 很不错的介绍 http://m.blog.csdn.net/blog/jackljf/38736625