开n个进程
每个进程计算一部分,然后再合并
有些人可能会说 sleep(10) 不是很耗费时间吗?
其实不会
一般的运算其实根本用不着多线程
只有庞大的计算量才需要多线程
然而这时sleep(10)并不会显得很浪费
恰恰相反,这样做不会因为循环而浪费过多的资源
import java.util.Scanner;
import java.lang.Thread;
import java.util.Vector;
import java.io.*;
class add extends Thread{
static int sum=0;
static int flag=0;
int start,end;
add(int a,int b){
start=a;
end=b;
}
public void run() {
for(int i=start;i<=end;i++) {
sum+=i;
}
flag++;
}
}
public class example2 extends Thread{
public static void main(String[] args) {
add a=new add(1,10);
add b=new add(11,20);
add c=new add(21,30);
add d=new add(31,40);
add e=new add(41,50);
add f=new add(51,60);
add g=new add(61,70);
add h=new add(71,80);
add i=new add(81,90);
add j=new add(91,100);
a.start();
b.start();
c.start();
d.start();
e.start();
f.start();
g.start();
h.start();
i.start();
j.start();
synchronized(a) {
while(true) {
if(a.flag==10) {
System.out.println(a.sum);
return;
}
try {
sleep(10);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
}
}