`
java-mans
  • 浏览: 11456982 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

仅供学习,请勿用于非法用途。


线程类如下


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主线程--系统异常!");
		}		
	}

}


分享到:
评论

相关推荐

    WEBAPI多线程并发测试工具

    WEB API 多线程并发测试工具; WEB API 多线程并发测试工具

    基于HTTP、NIO、多线程实现浏览器高并发非阻塞访问服务器文件

    代码经过压力测试,采用反应器模式,没有第三方框架,实现功能:可以一个线程处理多个请求,也可以加上多线程。处理数据采用的多线程。实现功能:基于HTTP协议,解析请求和拼接响应,基于NIO的非阻塞,线程池,文件...

    基于C++实现多线程连接池MySQL源码+项目说明+详细代码注释.zip

    ## 高并发下频繁处理瓶颈 * 建立通信:`TCP三次握手` * 数据库服务器的`连接认证` * 服务器`关闭连接`的资源回收 * `断开`通信的TCP四次挥手 &gt; 如果客户端和服务端`频繁`进行类似操纵,影响整个`开发效率` ## ...

    尊天缓存,高并发高性能,让服务器飞起来

    总之 并发需求越高 访问量越大 线程数量越多 服务器的cpu核心越多 尊天缓存能发挥的作用就越大 尊天缓存是高并发高性能的缓存系统 帮您的服务器真正的飞起来 下面是性能测试数据: os:windows server 2008 x64 cpu:...

    开涛高可用高并发-亿级流量核心技术

    1.1 高并发原则 3 1.1.1 无状态 3 1.1.2 拆分 3 1.1.3 服务化 4 1.1.4 消息队列 4 1.1.5 数据异构 6 1.1.6 缓存银弹 7 1.1.7 并发化 9 1.2 高可用原则 10 1.2.1 降级 10 1.2.2 限流 11 1.2.3 切流量 12 1.2.4 可回滚...

    ab压力测试的安装、使用、破2万并发测试

    ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试Apache的负载压力,也可以测试Nginx、Lighthttp、Tomcat、IIS等其它Web服务器的压力。 ...

    软件测试作业及习题评讲

    误区二:软件测试技术要求不高,至少比编程容易多了 误区三:有时间就多测试一些,来不及就少测试一些 误区四:软件测试是测试人员的事,与开发人员无关 误区五:根据软件开发瀑布模型,软件测试是开发后期的...

    java高性能数据库连接池V5.0

    此代码,经过1000数量级的多线程并发访问测试。在四核CPU下也进行了多线程测试。保证了连接池在真多线程上同步访问的安全性。 里面包含了一个公开的接口。使用这个接口里面的函数。可以轻易创建使用数据库连接池...

    java高性能数据库连接池V2.0

    此代码,经过1000数量级的多线程并发访问测试。在四核CPU下也进行了多线程测试。保证了连接池在真多线程上同步访问的安全性。 里面包含了一个公开的接口。使用这个接口里面的函数。可以轻易创建使用数据库连接池...

    asp.net多线程的TCP端口扫描程序的设计与实现(源代码+thesis).zip

    这将提高应用程序的并发能力和响应性能,确保用户在高负载情况下仍然能够流畅地使用应用程序。 性能优化:我们将使用一系列性能优化技术来提高应用程序的性能。这包括使用高效的算法和数据结构、使用缓存技术和...

    Java并发编程(学习笔记).xmind

    (1)如果设计正确,多线程程序可以通过提高处理器资源的利用率来提升系统吞吐率 (2)建模简单:通过使用线程可以讲复杂并且异步的工作流进一步分解成一组简单并且同步的工作流,每个工作流在一个单独的线程...

    网站架构技术

    多线程 资源复用 单例 对象池 数据结构 垃圾回收 存储性能优化 固态硬盘 RAID与HDFS 万无一失:网站的高可用性 高可性的度量与考核 度量 考核 高可用的网站架构 高可用的应用 高...

    apache性能测试工具

     ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力...

    loadrunner测试资料

    本文介绍了几个比较典型的服务器评测软件,无论什么评测工具,基本的技术都是利用线程技术模仿和虚拟用户,在这里主要的难点在于测试脚本的编写,每种工具使用的脚本都不一样,但是大多数工具都提供录制功能就算是...

    Web性能压力测试工具之ApacheBench详解

     ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力...

    siege2.72最新版本以及使用教程

    Siege是一个多线程的WEB性能测试工具,被设计成可以让WEB开发人员了解代码在长时间压力下的性能.可以模拟很多用户同时访问WEB服务器,此数量可以自由定义.这就相当于web server被围攻(siege)了. 性能指标包括已用时间...

    淘特大型门户网站CMS企业版

    14、强大的采集系统,多线程并发采集、基于TASK任务的定时采集功能。 15、高性能的计数统计模块,linklist缓存+定时批量处理入库,访问量在百万以上时所占资源仍较少(此模块已被国内某门户网站所采用)。 系统...

    一个进程池的服务器程序

    由于listenfd是在fork之前就有的,所以所有子进程都可以访问到,不需用到“进程间文件描述符传递”问题; 4,子进程每accept到一个请求都告诉父进程,父进程把请求数加1;子进程没完成一个请求,父进程把请求数减1;...

    改进后的SqlHelper数据库访问组件

    自己仔细的研究了企业库的DAAB后把里面核心的代码及思想移植出来,并进行改进后的版本, 配置和使用都很方便,加入了分页查询...已通过测试并用在项目中,即使是多线程高密度的并发执行也没有问题. 附上源代码及实例工程

    淘特Asp.Net Cms(1.0)

    10. 强大的采集系统,多线程并发采集、基于TASK任务的定时采集功能。 11. 高性能的计数统计模块,缓存+定时批量处理入库,访问量在百万以上时所占资源仍较少。 12. 站内、站外文件include(嵌入)到CMS网站支持。...

Global site tag (gtag.js) - Google Analytics