package org.springside.modules.utils.text;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;
import org.junit.Test;
public class StringBuilderHolderTest {
@Test
public void test() throws InterruptedException {
final CountDownLatch countdown = new CountDownLatch(10);
final CyclicBarrier barrier = new CyclicBarrier(10);
Runnable runnable = new Runnable() {
StringBuilderHolder holder = new StringBuilderHolder(512);
@Override
public void run() {
try {
barrier.await();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StringBuilder builder = StringBuilderHolder.getGlobal();
builder.append(Thread.currentThread().getName() + "-1");
System.out.println(builder.toString());
builder = StringBuilderHolder.getGlobal();
builder.append(Thread.currentThread().getName() + "-2");
System.out.println(builder.toString());
StringBuilder builder2 = holder.get();
builder2.append(Thread.currentThread().getName() + "-11");
System.out.println(builder2.toString());
builder2 = holder.get();
builder2.append(Thread.currentThread().getName() + "-22");
System.out.println(builder2.toString());
countdown.countDown();
}
};
for (int i = 0; i < 10; i++) {
Thread thread = new Thread(runnable);
thread.start();
}
countdown.await();
}
}