请老师检查一下
相关代码:
package threadlocal; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadLocalStringBuilder { public static ExecutorService threadPool = Executors.newFixedThreadPool(10); public static void main(String[] args) { for (int i = 0; i < 20; i++) { int finalI = i; threadPool.execute(new Runnable() { @Override public void run() { try { Thread.sleep(1000); String s = new ThreadLocalStringBuilder().data(finalI); System.out.println(s); } catch (InterruptedException e) { throw new RuntimeException(e); } } }); } threadPool.shutdown(); } public String data(int num) { StringBuilder stringBuilder = ThreadSafeStringBuilder.stringBuilderThreadLocal.get(); if(stringBuilder.length() > 0){ stringBuilder.delete(0, stringBuilder.length()); } String s = "数字" + num; return stringBuilder.append(s).toString(); } } class ThreadSafeStringBuilder{ public static ThreadLocal<StringBuilder> stringBuilderThreadLocal = ThreadLocal.withInitial(()-> new StringBuilder()); }
7
收起
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星