多线程的问题,我是新手,根本不会多线程,求大神帮忙帮忙!!!!!!!!!!!!

2025年03月01日 14:37
有1个网友回答
网友(1):

public class Demo {
public static void main(String[] args) {
int threadNum=10;
StringBuffer sb = new StringBuffer();
ExecutorService servicePool = Executors.newFixedThreadPool(threadNum);
List> list=new ArrayList<>();
for(int i=0;i//每条线程计算添加1000条记录
Task task =new Task(1000);
//用10个线程并行执行 一个10*1000 次
Future futrue=servicePool.submit(task);
//最好合并结果
list.add(futrue);
}
for(Future futrue:list){
try {
String result=futrue.get();
sb.append(result);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}

}
System.out.println(sb.toString());
servicePool.shutdown();
}
}
class Task implements Callable {
private int num = 0;
public Task(int num) {
this.num = num;
}
@Override
public String call() throws Exception {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num; i++) {
sb.append("里面是拼接的sql语句有点长!!");
}
return sb.toString();
}
}