黑马程序员技术交流社区
标题:
对于StringBuffer和StringBuilder,线程安全的问题。
[打印本页]
作者:
李会成
时间:
2013-2-16 14:07
标题:
对于StringBuffer和StringBuilder,线程安全的问题。
谁能给我举例说明一下,怎么看出来StringBuffer是安全的,而StringBuilder是不安全的啊。
我是这样实现的:
//final StringBuffer sb = new StringBuffer ();
final StringBuilder sb = new StringBuilder();
new Thread (new Runnable () {
public void run() {
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sb.append("====");
//sb.delete(0, 4);
System.out.println(sb);
}
}
}).start();
new Thread (new Runnable () {
public void run() {
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sb.append("AAAA");
//sb.delete(0, 4);
System.out.println(sb);
}
}
}).start();
复制代码
结果是:不管是用StringBuffer还是StringBuilder,都会按照====AAAA的顺序或者AAAA====的顺序老长,没有出现乱序的现象,也就是没有出现过==AA==A===A这样的现象。
我这个方法是否可以体现出来StringBuffer和StringBuilder在线程安全上的差异?只是运行的时间还不够长吗?
有没有更好的办法体现出来??
作者:
Rancho_Gump
时间:
2013-2-16 18:45
最直接的办法,看下源码 {:soso_e113:}
作者:
李培根
时间:
2013-2-18 11:19
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。
原帖地址:
http://bbs.itheima.com/thread-14162-1-1.html
请勿再次发此类帖子了!
此贴就关闭了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2