标签:his 速度 exce imp pre mina 结束 todo blog
---恢复内容开始---
检测本机正在使用的服务端口,尽量快完成,计算消耗时间:
轮询:
1 public class test implements Runnable { 2 //private static String host="210.39.3.164"; 3 private static int i=0; 4 static Date one,two; 5 public synchronized int get(){ 6 if(i>=1024)notifyAll(); 7 return i++; 8 } 9 10 public static void main(String argv[]){ 11 one=new Date(); 12 //long time=one.getTime()-two.getTime(); 13 //System.out.println(time); 14 ExecutorService pool = Executors.newFixedThreadPool(30); 15 for(int j=0;j<15;j++){ 16 pool.submit(new Thread(new test())); 17 } 18 pool.shutdown(); 19 while(true){ 20 if(pool.isTerminated()){ 21 System.out.println(two.getTime()-one.getTime()); 22 break; 23 } 24 } 25 } 26 27 public void run(){ 28 int temp; 29 while((temp=get())<1024){ 30 try { 31 Socket s=new Socket(InetAddress.getLocalHost(),temp); 32 System.out.println("服务端口: "+temp); 33 s.close(); 34 } catch (UnknownHostException e) { 35 // TODO Auto-generated catch block 36 e.printStackTrace(); 37 } catch(ConnectException e){ 38 System.out.println(temp+"不是服务端口"); 39 }catch (IOException e) { 40 // TODO Auto-generated catch block 41 e.printStackTrace(); 42 } 43 if(temp==1023){ 44 two=new Date(); 45 } 46 } 47 } 48 }
尽量多开线程:
public class test {
	public static void main(String argv[]){
		int i;
		Date d=new Date();
		ExecutorService pool = Executors.newFixedThreadPool(1204);
		for(i=1;i<=1024;i++){
			pool.submit(new Thread(new thread(i)));
		}
		pool.shutdown();
		while(true){
			if(pool.isTerminated()){
				Date last=new Date();
				System.out.println(last.getTime()-d.getTime());
				break;
			}
		}
		
	}
}
class thread implements Runnable{
	int i;
	thread(int i){
		this.i=i;
	}
	
	public void run(){
		try {	
			Socket s=new Socket(InetAddress.getLocalHost(),i);
			System.out.println("服务端口:   "+i);
			s.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch(ConnectException e){
			//System.out.println(i+"不是服务端口");
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
轮询方法使用了线程同步,但是没有多开线程方法速度快
---恢复内容结束---
标签:his 速度 exce imp pre mina 结束 todo blog
原文地址:http://www.cnblogs.com/ming-szu/p/6784571.html