1. 程式人生 > >java程式設計之多執行緒計算

java程式設計之多執行緒計算

/*
 *編寫兩個執行緒: 
 *第一個執行緒計算2-1000000之間的質數及個數 
 *第二個執行緒計算1000000-2000000之間的質數 及個數 
 */

class myThread extends Thread{
	private int a,b;  //變數的宣告
	private int count;  
	private int count1=0;
	
	myThread(int x,int y){  //賦值函式
	    a=x;
		b=y;
	}
	
	public void run(){  //執行緒執行任務
		try{
			for(int i=a;i<=b;i++){  //for迴圈,計算a,b之間質數
				count=1;  //因數個數變數
				for(int j=2;j<=i;j++){  //for迴圈,計算因數個數
					if(i%j==0){  //如果i整除j,則j是i的因數
						count++;  //因數計數器+1
					}
					if(count>2){  //如果因數個數大於2 
						break;  //跳出磁層迴圈
					}
				}
				
				if(count==2){  //如果該數只有兩個因數,說明這個數是質數
						System.out.print(i+" ");  //輸出質數
						count1++;  //質數個數計數器+1
					}
			}
			
			System.out.println(a+"和"+b+"之間有"+count1+"個質數");
		}catch(Exception e)  //捕捉異常
		{return;}
	}
}

public class prime{
	public static void main(String args[]){  
		myThread ta=new myThread(2,1000000);  //類物件
	    myThread tb=new myThread(1000000,2000000);
	    
	    ta.start();  //多執行緒的執行
	    tb.start();
	}
	
}