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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


谁能给我举例说明一下,怎么看出来StringBuffer是安全的,而StringBuilder是不安全的啊。
我是这样实现的:
  1. //final StringBuffer sb = new StringBuffer ();
  2.                 final StringBuilder sb = new StringBuilder();
  3.                 new Thread (new Runnable () {

  4.                         public void run() {
  5.                                 while (true) {
  6.                                         try {
  7.                                                 Thread.sleep(2000);
  8.                                         } catch (InterruptedException e) {
  9.                                                 // TODO Auto-generated catch block
  10.                                                 e.printStackTrace();
  11.                                         }
  12.                                         sb.append("====");
  13.                                         //sb.delete(0, 4);
  14.                                         System.out.println(sb);
  15.                                 }
  16.                                 
  17.                         }
  18.                         
  19.                 }).start();
  20.                 new Thread (new Runnable () {

  21.                         public void run() {
  22.                                 while (true) {
  23.                                         try {
  24.                                                 Thread.sleep(2000);
  25.                                         } catch (InterruptedException e) {
  26.                                                 // TODO Auto-generated catch block
  27.                                                 e.printStackTrace();
  28.                                         }
  29.                                         sb.append("AAAA");
  30.                                         //sb.delete(0, 4);
  31.                                         System.out.println(sb);
  32.                                 }
  33.                                 
  34.                                 
  35.                         }
  36.                         
  37.                 }).start();
复制代码
结果是:不管是用StringBuffer还是StringBuilder,都会按照====AAAA的顺序或者AAAA====的顺序老长,没有出现乱序的现象,也就是没有出现过==AA==A===A这样的现象。
我这个方法是否可以体现出来StringBuffer和StringBuilder在线程安全上的差异?只是运行的时间还不够长吗?
有没有更好的办法体现出来??

2 个回复

正序浏览
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。
原帖地址:http://bbs.itheima.com/thread-14162-1-1.html

请勿再次发此类帖子了!

此贴就关闭了。
回复 使用道具 举报
最直接的办法,看下源码  {:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马