课堂编程实践
编写10个线程,第一个线程从1加到10,第二个线程从11加到20,....第10个线程从99加到100,组后再把10个线程的结果相加。
public class Accumulator extends Thread {
private int startNum;
public static int sum;
public Accumulator(int startNum) {
this.startNum=startNum;
}
public static synchronized void add(int num) {
sum+=num;
//System.out.println(sum);
}
public void run() {
int sum=0;
for(int i=0;i<10;i++) {
sum+=startNum+i;
//System.out.println(sum);
}
add(sum);
}
public static void main(String[]args) throws Exception{
int count=10;
Thread []threadList=new Thread[count];
for(int i=0;i<count;i++) {
threadList[i]=new Accumulator(10*i+1);
threadList[i].start();
}
for(int i=0;i<count;i++) {
threadList[i].join();
}
System.out.println("Sum is:"+sum);
}
}
运行结果:
Sum is:5050