A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王虎 中级黑马   /  2012-10-21 20:39  /  3219 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

还有:多线程的时候StringBuffer是同步的,单线程的程序里如果用StringBuffer不是同步的?如果不是那他在单线程的程序里又是怎么个情况?

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

5 个回复

正序浏览
StringBuffer它里面会判断一样该线程是否需要同步处理,而StringBuilder就不支持同步,不用判断,故在单线程中用StringBuilder性能好点,在多线程中用StringBuffer就安全点
回复 使用道具 举报
StringBuffer提供了同步机制,所以并发线程访问是线程安全的。适合多线程。
StringBuilder没有提同步机制,所以线程不安全,适合单线程。但如果是单线程的话,要比StringBuffer快。
另外StringBuffer本身具有synchronized,在单线程里使用难不成还会变为多线程了?
在单线程里使用StringBuffer也没什么大事,只不过效率不高 PS我没测试过效率问题
回复 使用道具 举报
谢谢楼上的俩位,不过不是我想要的答案~
回复 使用道具 举报
我们常常会多个线程操作同一个字符串,还是多条语句的情况下,这样会很容易出错,需要同步用锁来控制,一个线程接一个线程来操作,而不是一个线程操作一半被另一个线程插进来操作,那样会出事的。
回复 使用道具 举报
线程同步跟异步 区别就在于 线程同步 是跟你买东西要排队一样 这样子不会找钱出错,而异步就是可以插队,插队的人多起来你可能找错钱
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马