码迷,mamicode.com
首页 > 编程语言 > 详细

StringBuilder是不是线程安全的?

时间:2014-11-08 15:03:19      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   sp   for   

测试条件:

开启2个并行执行任务,往同一个StringBuilder对象写入值

测试代码:

bubuko.com,布布扣
static int maxNum = 1000000;
        static StringBuilder sbIsThreadSafe = new StringBuilder();
        static void Main(string[] args)
        {
            //迭代次数
            int iterationNum = 3;
            CodeTimer.Initialize();           
            CodeTimer.Time("StringBuilder是否是线程安全的呢?", iterationNum, new Action(SBIsThreadSafe));
            //Console.Write(sbIsThreadSafe.ToString());
            Console.Read();
        }
        private static void SBIsThreadSafe()
        {
            Parallel.For(1, maxNum / 2, (i) =>
            {
                sbIsThreadSafe.Append(i.ToString());
            });
            Parallel.For(maxNum / 2 + 1, maxNum, (i) =>
            {
                sbIsThreadSafe.Append(i.ToString());
            });
        }
View Code

测试结果:

bubuko.com,布布扣

 

结论:

     StringBuilder是线程安全的

StringBuilder是不是线程安全的?

标签:style   blog   http   io   color   ar   os   sp   for   

原文地址:http://www.cnblogs.com/eric-xiongzw/p/4083358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!