多线程访问网页+高并发测试网站
来源:互联网 发布:淘宝类目选错了 编辑:程序博客网 时间:2024/05/14 08:01
多线程访问网页+高并发测试网页
仅供学习,请勿用于非法用途。
线程类如下
- 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();
- }
- }
- }
启动类如下
- 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<grabThreads.length;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<threadCount;i++){
- if(grabThreads[i].isAlive()){
- Thread.sleep(10);
- continue WhileLoop;
- }
- }
- //所有抓取线程执行完毕
- isRunGrabThread = false;
- //子线程执行完毕则退出
- break;
- }
- }
- catch (Exception e) {
- System.out.println("main主线程--系统异常!");
- }
- }
- }
第二种办法:
- package com.yjf.soso;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.PrintStream;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Scanner;
- public class Shua
- implements Runnable
- {
- private static String strUrl = null;
- private static long numL = 0L;
- private static Scanner scanner = new Scanner(System.in);
- public void run() {
- HttpURLConnection connection = null;
- InputStream urlStream = null;
- URL url = null;
- while (true)
- try {
- url = new URL(strUrl + numL);
- connection = (HttpURLConnection)url.openConnection();
- connection.connect();
- urlStream = connection.getInputStream();
- if (urlStream != null) {
- numL += 1L;
- urlStream.close();
- System.out.print("\t" + numL);
- if (numL % 30L == 0L) {
- System.out.println();
- }
- }
- Thread.sleep(10L); } catch (InterruptedException e) {
- while (true) {
- e.getMessage();
- try {
- Thread.sleep(1000L); } catch (InterruptedException ie) {ie.printStackTrace(); }
- }
- }
- catch (MalformedURLException e)
- {
- e.printStackTrace();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) throws MalformedURLException
- {
- System.out.println("");
- int threadNum;
- while (true)
- {
- System.out.println("请输入要生成的线程数:");
- threadNum = scanner.nextInt();
- System.out.println("请输入网址:");
- String str = scanner.next();
- if ((!(str.startsWith("http://"))) && (!(str.startsWith("https://")))) {
- strUrl = "http://" + str;
- System.out.println(strUrl);
- } else {
- strUrl = str;
- }
- if (str.indexOf("?") >= 0)
- strUrl += "&num=";
- else {
- strUrl += "?num=";
- }
- System.out.println("--------------------------------------");
- System.out.println("线程数:" + threadNum);
- System.out.println("地址" + str);
- System.out.println("请再次确认(Y/N):");
- String tmp = scanner.next();
- if ("Y".equalsIgnoreCase(tmp))
- break;
- if ("N".equalsIgnoreCase(tmp)) {
- continue;
- }
- System.out.println("输入错误,请重新输入(Y/N):");
- }
- for (int i = 0; i < threadNum; ++i) {
- Shua at = new Shua();
- Thread t = new Thread(at);
- t.start();
- }
- }
- }
0 0
- 多线程访问网页+高并发测试网站
- 【转】如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问? .
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问
- 如何才能做到网站高并发访问
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问
- 如何才能做到网站高并发访问?[转]
- 如何才能做到网站高并发访问?
- 如何实现网站高并发访问
- 如何才能做到网站高并发访问?
- 如何才能做到网站高并发访问
- 编程之美-中国象棋将帅问题
- ip查询接口演示示例
- 定点DSP与浮点DSP的比较(定点DSP和浮点DSP的定义)
- C\C++和Lua是如何进行通信的?
- 【DP】 467C George and Job
- 多线程访问网页+高并发测试网站
- This Android SDK requires Android Developer Toolkit version 17.0.0 or above. 问题解决方法
- HiddenHttpMethodFilter
- [Android]Volley源码分析(二)初始化
- Erlang和Golang的几点粗浅的比较
- hdu 1412 {A} + {B} (水题但要注意输出格式)
- Android常用的一些make命令(转载)
- 3.基于DWR推送技术Demo
- 链队列