`
iluoxuan
  • 浏览: 572064 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单的并发测试例子

 
阅读更多

一个简单的并发测试的例子: 当线程数达到规定的数量,并发执行

package com.http.concurrent.test;

import java.util.concurrent.CyclicBarrier;

/**
 * 测试业务处理线程
 * @author lijunqing
 */
public abstract class WorkRun implements Runnable {

    private final CyclicBarrier barrier;

    public WorkRun(CyclicBarrier barrier) {
        this.barrier=barrier;
    }

    public void run() {
        try {
            System.out.println(Thread.currentThread().getId() + " thread is awaiting");
            barrier.await();
            process();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    protected abstract void process();

}

 

每个测试的都继承WorkRun;实现process借口,

 

测试例子:

public static void main(String[] args) {
        int count=1000;
        CyclicBarrier barrier=new CyclicBarrier(count);
        ExecutorService executorService=Executors.newFixedThreadPool(count);
        for(int i=0; i < count; i++) {
            executorService.execute(new LoginTest(barrier));
        }
        executorService.shutdown();
        long starttime=System.currentTimeMillis();
        while(!executorService.isTerminated()) {
            System.out.println("有没有关闭的");
        }
        long endtime=System.currentTimeMillis();
        System.out.println("starttime:" + starttime + "   endtime:" + endtime+"  所有线程完成用时:"+(endtime-starttime));
    }

 

结果:

  

8 thread is awaiting
10 thread is awaiting
9 thread is awaiting
12 thread is awaiting
11 thread is awaiting
********
37 thread is awaiting
39 thread is awaiting
1006 thread is awaiting
1007 thread is awaiting
有没有关闭的
有没有关闭的
有没有关闭的
有没有关闭的
有没有关闭的
有没有关闭的
*********
有没有关闭的
有没有关闭的
1005 thread is awaiting
1003 thread is awaiting
1004 thread is awaiting
999 thread is awaiting
1001 thread is awaiting
*****
62 thread is awaiting
60 thread is awaiting
55 thread is awaiting
57 thread is awaiting
53 thread is awaiting
58 thread is awaiting
56 thread is awaiting
54 thread is awaiting
52 thread is awaiting
51 thread is awaiting
49 thread is awaiting
47 thread is awaiting
50 thread is awaiting
48 thread is awaiting
46 thread is awaiting
45 thread is awaiting
43 thread is awaiting
41 thread is awaiting
有没有关闭的
有没有关闭的
有没有关闭的
有没有关闭的
有没有关闭的
有没有关闭的

有没有关闭的
有没有关闭的
有没有关闭的
*****
有没有关闭的
--start--working--43
*******
--start--working--168
--start--working--164
--start--working--166
--start--working--163
--start--working--165
--start--working--170
--start--working--172
--start--working--167
--start--working--178
--start--working--174
--start--working--180
--start--working--176
--start--working--169
--start--working--171
*******
--start--working--41
有没有关闭的
starttime:1394614101246   endtime:1394614101855  所有线程完成用时:609

 

分享到:
评论

相关推荐

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第一阶段36讲、自定义个简单的线程池并且测试.mp4 │ 高并发编程第一阶段37讲、给线程池增加拒绝策略以及停止方法.mp4 │ 高并发编程第一阶段38讲、给线程池增加自动扩充线程数量,以及闲时自动回收...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第一阶段36讲、自定义个简单的线程池并且测试.mp4 │ 高并发编程第一阶段37讲、给线程池增加拒绝策略以及停止方法.mp4 │ 高并发编程第一阶段38讲、给线程池增加自动扩充线程数量,以及闲时自动回收...

    StressMark压力测试软件

    一个简单的测试包的例子如下: MyCase1.h #include "stdafx.h" #include "StressCase.h" class MyCase1 : public StressCase { public: DECLARE_DYNCREATE(MyCase1) bool OneStep(CString& strErrorMessage);...

    软件测试工具LoadRunner调用一个简单Dll例子

    LoadRunnerLoadrunner软件测试工具LoadRunner调用一个简单Dll例子LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对...

    高并发C 应用程序框架safapplicationframework.zip

    是一个高并发的c 应用程序框架,它以RPC为基础,提供了动态载入模块的特性,为服务端开发人员只用关注于程序的业务逻辑,就可以实现远程方法调用,而不会关心底层的通信细节,另外,它还内置了一个简单的http server...

    VHDL设计简单例程100例

    VHDL设计简单例程100例,简单入门VHDL语言100例 第1例 带控制端口的加法器 第2例 无控制端口的加法器 第3例 乘法器 第4例 比较器 第5例 二路选择器 第6例 寄存器 第7例 移位寄存器 第8例 综合单元库 第9例 七值逻辑与...

    CsCheck:C#的随机测试库

    并发测试和随机收缩可以很好地协同工作。请参阅与其他随机测试库的。低典礼生成器使CsCheck成为C#的不错选择,但是卓越的自动收缩和性能使其成为所有语言的不错选择。 CsCheck还具有使多种类型的测试变得简单而快速...

    最好用的OPC Server开发包,OPCServer开发工具

    史上最简单的OPC Server SDK开发包...wopc3tst/ opc da3.0 的IOPCItemIO接口的简易测试代码。 OPC Core Components Redistributable (x86) 105.1.zip OPC基金会的发布安装包。 OPC Server DA开发包opcdasvr使用说明.doc

    Delphi XE开发HTTPSERVER服务+源码+测试可用

    //功能描述:线上订货系统订单提交时检查ERP系统库存 //项目背景:因线上订货系统不支持PTO模式(商品有BOM),ERP系统支持,订单提交时需要检查ERP系统中子件库存是否够 ...//服务程序运行了几个月,基本正常,偶尔会...

    puppeteer-loadtest:使用节点加载测试puppeteer(无头Chrome API)脚本

    puppeteer-loadtest提供了一种并行启动多个puppeteer实例的简单方法,以在您的站点上运行简单的负载测试。 安装 通过npm安装: $ npm install -g puppeteer-loadtest 用法 要运行基本的负载测试,只需提供要运行的...

    C++编程思想(第2版 第2卷)

     2.2 一个简单的单元测试框架   2.2.1 自动测试   2.2.2 TestSuite框架   2.2.3 测试套件   2.2.4 测试框架的源代码   2.3 调试技术   2.3.1 用于代码跟踪的宏   2.3.2 跟踪文件   2.3.3 ...

    沙盘运行器

    C#高性能大容量SOCKET并发完成端口例子 . 课程资源热门Tag. 软件测试 matlab loadrunner 测试 软件工程 qtp 教程 破解 性能测试 软件 .. . 关闭 ...

    对cpn第一部分的理解

    对cpn的简单概述:系统开发和工程是一门综合性学科,涉及多种活动,如需求工程、设计和规范、实施、测试和部署。越来越多的系统开发项目与并发系统有关。这方面有许多例子,从基于互联网技术的电信和应用领域的大...

    java源码包2

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    领域驱动设计与模式实战

    6.4.3 测试之前重置测试所使用的数据 6.4.4 不要忘记不断演变的模式 6.4.5 分离单元测试和数据库调用测试 6.5 查询 6.5.1 单组查询对象 6.5.2 单组查询对象的代价 6.5.3 将查询定位到哪里 6.5.4 再次将聚合作为工具 ...

    JAVA上百实例源码以及开源项目源代码 java开源包2

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    nodejs-web-scraper

    如有任何疑问或建议,请打开Github问题或通过与我联系安装$ npm install nodejs-web-scraper目录原料药分页说明错误处理自动记录并发执照免责声明 基本例子 从新闻站点收集文章假设我们要从新闻网站获取每个文章...

    jwt:用于Go的安全,简单,快速的JSON Web令牌

    简单的API。 干净且经过测试的代码。 优化速度。 并发安全。 无依赖关系。 支持所有知名算法 HMAC(HS) RSA(RS) RSA-PSS(PS) ECDSA(ES) EdDSA(EdDSA) 还是你自己的! 安装 Go版本1.13+ GO111...

    TCPIP详解--共三卷

    29.6.2 简单的例子:创建一个目录 357 29.6.3 无状态 358 29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 ...

Global site tag (gtag.js) - Google Analytics