编写10个线程,第一个线程从1加到10,第二个线程从11加到20…第十个线程从91加到100,最后再把十个线程结果相加。
public class AccountTest {
public static void main(String[] args) {
Thread[] ts = new Thread[10];
for (int i = 0; i < ts.length; i++) {
ts[i] = new Account(i * 10 + 1);
ts[i].setName("第" + (i + 1) + "个线程:");
ts[i].start();
try {
ts[i].join();//这是为了让其他线程早于主线程执行
} catch (InterruptedException e) {
e.printStackTrace();
}
}
int sum = Account.getSum();
System.out.println(sum);
}
}
class Account extends Thread{
private int startNum;
private static int sum;
public Account(int startNum) {
this.startNum = startNum;
}
@Override
public void run() {
int num = 0;
for (int i = 0; i < 10; i++) {
num += (startNum + i );
}
System.out.println(getName() + "求和结果为:" +num);
add(num);
}
public synchronized void add(int num){
sum += num;
}
public static int getSum() {
return sum;
}
}
这样就能让10条线程依次运行了,先1+……+10,再11+……20,……算是实现了吧