我这里模拟了StringBuilder的源码,感觉结果和我想的不一样,有没有大神给我解答一下
// 两个线程运行append
for (int i = 0; i < 2; i ++) {
char c = String.valueOf(i).charAt(0);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
sb.appendC(c);
}
});
thread.start();
}
// 模拟stringbuilder源码
int c = count;
final char[] value = this.value;
for (int i = 0; i < 10000; i ++) {
value[c++] = number;
}
count = c;
return this;
// 打印结果
System.out.println(sb.toString().contains("0"));
System.out.println(sb.toString().contains("1"));
System.out.println(sb.toString());
System.out.println(sb.length());
打印出来的,要么长度为10000,全是1或0,要么为20000,0和1都有。
我本以为会出现长度为10000,0和1都存在的情况,并没有出现,有没有大神能解答一下
是10000太小了,我把10000改成十万,就会出现长度十万,0,1都有的情况