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

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

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

线程类如下

  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.net.HttpURLConnection;
  4. import java.net.MalformedURLException;
  5. import java.net.URL;
  6. public class TestThread extends Thread{
  7. private String httpurl;
  8. public TestThread(String httpurl){
  9. this.httpurl = httpurl;
  10. }
  11. public void run() {
  12. HttpURLConnection connection = null;
  13. InputStream urlStream = null;
  14. URL url = null;
  15. try {
  16. url = new URL(httpurl);
  17. connection = (HttpURLConnection)url.openConnection();
  18. connection.connect();
  19. urlStream = connection.getInputStream();
  20. Thread.sleep(10L); } catch (InterruptedException e) {
  21. }
  22. catch (MalformedURLException e)
  23. {
  24. e.printStackTrace();
  25. }
  26. catch (IOException e) {
  27. e.printStackTrace();
  28. }
  29. }
  30. }

启动类如下

  1. public class Test {
  2. public static void main(String[] args) {
  3. while (true) {
  4. //仅供学习请勿用于非法用途
  5. startThead();
  6. }
  7. }
  8. public static int threadCount = 55;   //线程数量
  9. private static boolean isRunGrabThread = true;     //抓取线程是否执行完毕
  10. static int  num = 1; //动态参数
  11. public static void startThead(){
  12. Thread[] grabThreads= new Thread[threadCount];
  13. try{
  14. //开启-数据抓取子线程
  15. for(int i=0;i<grabThreads.length;i++){
  16. int numL = num*100;
  17. System.out.println(numL);
  18. String url = "http url ?id=" + numL;
  19. Thread searchThread=new TestThread(url);
  20. num++;
  21. grabThreads[i] = searchThread;
  22. grabThreads[i].setDaemon(true);
  23. grabThreads[i].start();
  24. }
  25. isRunGrabThread = true;
  26. //监控子线程,全部完成程序退出
  27. WhileLoop:
  28. while(true){
  29. //拨号策略控制
  30. //reconnectControl();
  31. //判断子线程是否运行完成
  32. for(int i=0;i<threadCount;i++){
  33. if(grabThreads[i].isAlive()){
  34. Thread.sleep(10);
  35. continue WhileLoop;
  36. }
  37. }
  38. //所有抓取线程执行完毕
  39. isRunGrabThread = false;
  40. //子线程执行完毕则退出
  41. break;
  42. }
  43. }
  44. catch (Exception e) {
  45. System.out.println("main主线程--系统异常!");
  46. }
  47. }
  48. }

版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。

时间: 2024-10-12 13:43:05

多线程访问网页+高并发测试网站的相关文章

大流量高并发量网站的之解决方案

一.对于网站访问速度影响的条件如下: 瓶颈主要有: 1.磁盘搜索 优化方法是:将数据分布在多个磁盘上 2.磁盘读/写 优化方法是:从多个磁盘并行读写. 3.CPU周期 优化方法:扩充内存 4.内存带宽 二.大流量高并发量网站的解决方案 1.确认服务器硬件是否足够支持当前的流量. 2.使用memcache缓存技术,将动态数据缓存到内存中,动态网页直接调用这些文件,而不必在访问数据库. 3.禁止外部的盗链. 4.外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对自身图片或者文

高并发量网站解决方案

一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件.编程语言.数据库.WebServer.防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的. 大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案

高并发大型网站架构设计

一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计? 事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判 定这个连接理论峰值是65535,也就是说,你的单个服务器程序,最多可以承受6万多的用户同时连接.但是,在实际应用中,能达到一万人的同时连接并能保 证正常的数据交换已经是很不容易了,通常这个值都在2

思考如何做一个普通网站和高并发的网站

写写总结一下,分别用C#和Java如何构建一个普通网站和一个高并发.安全的网站. 构建一个普通网站的checklist:.net mvc:mvc+EF+mysqljava:主流仍然使用ssh2?纯前端如node.js的优势和缺点如何? 注意事项:基本架构,前端框架,数据库事务 脚本构建一个高并发的网站:基本架构上的调整:缓存的加入(如memcached等),多线程的使用,需不需要做成分布式结构(web service等),图片等静态资源的CDN网络:数据库表之间字段关联的设计,字段冗余的合理使用

Jmeter之仿真高并发测试(集合点)

场景: 大家在使用Jmeter测试的时候应该发现了, (1)线程启动了就会直接发送测试请求:--如果要模拟在一瞬间高并发量测试的时候,需要调高线程数量,这很耗测试机器的性能,往往无法支持较大的并发数,无法控制每次测试的瞬间并发量: (2)如果使用了constant throughput timer,可以模拟较长时间的并发测试,但是仍无法满足稳定的瞬间高并发测试: 解决: 1.使用集合点: 作用:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力. 引用虫师的话"红军排长说:等

如何应对高并发 —— 动态网站静态化

零. 前言 为了应对高并发, 大多数网站在更新不频繁的页面都做了动态网页静态化处理. 典型的如: 淘宝的首页. 网易新闻的首页等. 当然这些网站加载速度这么快, 不仅仅是静态化, 还有 CDN. 缓存等各个方面的优化. 从阿里在 InfoQ 双十一架构的分享中提到使用 CDN + nginx + JBoss + 缓存作为 Detail 页面的架构, 将页面信息进行静态化缓存. 以上, 可以看出静态化技术的重要性及普遍性, 本文将结合具体实例介绍动态网站静态化. 一. 类及其依赖库  二. 代码实

多线程——探索 ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 的结构分析 为了更好的理解 ConcurrentHashMap 高并发的具体实现,让我们先探索它的结构模型. ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment.HashEntry 用来封装映射表的键 / 值对:Segment 用来充当锁的角色,每个 Segment 对象守护整个散列映射表的若干个桶.每个桶是由若干个 HashEntry 对象链接起来的链表.一个 ConcurrentHashMap 实例中包含由若

java高并发测试代码

package com.example.test; import java.net.URL;import java.net.URLConnection;import java.util.concurrent.CountDownLatch; /** * Created with IDEA * author:QinWei * Date:2018/12/27 * Time:11:08 * 并发测试 */public class ConnectTest { public static void main

性能测试_webbench高并发测试工具

1.简介 webbench最多可以模拟3万个并发连接去测试服务器的负载能力,编译和配置简单,仅基于TCP协议上对服务器进行测试.Webbench也是开放源码,从代码上看,每个客户端都fork出一个进程进行测试,仅在TCP协议层对服务器测试,并未涉及HTTP协议. 2.安装 源码下载: http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make