多线程访问网页+高并发测试网站

2014-11-24 08:12:24 · 作者: · 浏览: 0

多线程访问网页+高并发测试网页
仅供学习,请勿用于非法用途。

线程类如下

[java]
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class TestThread extends Thread{

private String httpurl;

public TestThread(String httpurl){
this.httpurl = httpurl;
}

public void run() {
HttpURLConnection connection = null;
InputStream urlStream = null;
URL url = null;
try {
url = new URL(httpurl);

connection = (HttpURLConnection)url.openConnection();
connection.connect();
urlStream = connection.getInputStream();
Thread.sleep(10L); } catch (InterruptedException e) {
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}

启动类如下

[java]
public class Test {

public static void main(String[] args) {
while (true) {
//仅供学习请勿用于非法用途
startThead();
}
}

public static int threadCount = 55; //线程数量
private static boolean isRunGrabThread = true; //抓取线程是否执行完毕
static int num = 1; //动态参数

public static void startThead(){
Thread[] grabThreads= new Thread[threadCount];
try{
//开启-数据抓取子线程
for(int i=0;i int numL = num*100;
System.out.println(numL);
String url = "http url id=" + numL;
Thread searchThread=new TestThread(url);
num++;
grabThreads[i] = searchThread;
grabThreads[i].setDaemon(true);
grabThreads[i].start();
}

isRunGrabThread = true;

//监控子线程,全部完成程序退出
WhileLoop:

while(true){

//拨号策略控制
//reconnectControl();

//判断子线程是否运行完成
for(int i=0;i if(grabThreads[i].isAlive()){
Thread.sleep(10);
continue WhileLoop;
}
}

//所有抓取线程执行完毕
isRunGrabThread = false;

//子线程执行完毕则退出
break;
}
}
catch (Exception e) {
System.out.println("main主线程--系统异常!");
}
}

}


摘自 玩转java