AlphaThread.java
package com.company.stringbuffer;
public class AlphaThread extends Thread {
StringBuilder builder;
StringBuffer buffer;
AlphaThread(StringBuilder builder, StringBuffer buffer){
this.builder = builder;
this.buffer = buffer;
}
@Override
public void run() {
super.run();
for (int i = 0; i < 10000; i++)
{
buffer.append("1");
builder.append("1");
}
System.out.println("buffer:"+buffer.length()+" builder:"+builder.length()+" xx:"+(buffer.length()-builder.length()));
}
}
MainTest.java
package com.company.stringbuffer;
public class MainTest {
public static void main(String[] args)
{
StringBuilder builder = new StringBuilder();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < 10; i++)
{
new AlphaThread(builder, buffer).start();
}
}
}
本文通过创建多个线程同时对StringBuilder和StringBuffer进行操作,比较了两者在并发环境下的性能差异。实验中,每个线程分别对StringBuilder和StringBuffer追加10000次字符,共启动10个线程。最后输出了两个对象的长度及长度差,以直观展示两者的效率。
1619

被折叠的 条评论
为什么被折叠?



