需求说明 : 5 个线程累加求和至 5000,然后输出累加结果
基本思路: static 类型的变量用于累加,每个线程执行 1000 次循环
class SumTask implements Runnable {
private static volatile int cnt = 1;
@Override
public void run() {
Object o = new Object();
synchronized (o){
for(int i = 0; i < 1000; i++){
System.out.println(cnt++);
}
}
}
}
public class MultiThreadSum {
public static void main(String[] args) throws InterruptedException {
// for(int i = 0; i < 5; i++){
// new Thread(new SumTask()).start();
// Thread.sleep(10);
// }
ExecutorService exec = Executors.newFixedThreadPool(2);
for(int i = 0; i < 5; i++){
exec.execute(new SumTask());
}
}
}
… 实在无话可说,不知道这样算不算摆烂;总之,继续努力吧。