Java: スレッド の応用(簡単な分散処理の真似事)
1から100までの整数の合計をスレッドに分けして計算させ、手分けして計算した部分を合計することにより、総合計を求めるプログラムです。Thread1は1から32までThread2は33から67、Thread3は68から100までの合計をそれぞれ計算し、main で集計して表示する。
これらのスレッドの処理をネットワークにより別々のコンピュータに担わせると小さな分散コンピューティングになる.
Proo18_1.java
class CompThread extends Thread { private String name; private int start,end,result; CompThread(String n,int s, int e){ name=n; start=s; end=e; } int getResult() {return result;} public void run() { int s=0; for(int i=start;i<=end;i++) s +=i; result=s; } } class Proo18_1 { public static void main(String args[]) { CompThread[] t = new CompThread[3]; t[0]=new CompThread("thread0",1,32); t[1]=new CompThread("thread1",33,67); t[2]=new CompThread("thread2",68,100); for(int i=0;i<t.length;i++) t[i].start(); try{ for(int i=0;i<t.length;i++) { t[i].join(); } } catch(InterruptedException e) {} int su=0; for (int i=0;i<t.length;i++){ su+=t[i].getResult(); } System.out.println("1 から 100 の和は "+su); } } /* 1 から 100 の和は 5050 */