1.定义一个controller,里面写个测试方法,用于postman测试

 1     @GetMapping("/toTestThread")
2 public void demosendThread() {
3
4 try {
5 startTime = System.currentTimeMillis();
6 System.out.println("CountDownLatch started at: " + startTime);
7 // 初始化计数器为1
8 CountDownLatch countDownLatch = new CountDownLatch(1);
9 for (int i = 0; i < THREAD_NUM; i++) {
10 new Thread(new Run(countDownLatch)).start();
11 }
12 // 启动多个线程
13 countDownLatch.countDown();
14 } catch (Exception e) {
15 System.out.println("Exception: " + e);
16 }
17
18 }

2.书写多线程

    /**
* 线程类
*/
private class Run implements Runnable {
private final CountDownLatch startLatch; public Run(CountDownLatch startLatch) {
this.startLatch = startLatch;
} @Override
public void run() {
try {
// 线程等待
startLatch.await();
// 执行操作
/** 这里调用你要测试的接口 */ String msg = "{\n" +
" \"name\":\"终端1\",\n" +
" \"id\":\"202303110001xl\",\n" +
" \"terminal\":\"COL\",\n" +
" \"mtype\":\"MSGE\",\n" +
" \"t\":\"2023-05-05 09:28:47.475\",\n" +
" \"params\":[\n" +
" {\n" +
" \"kks\":\"发变811层/机组1.电压1\",\n" +
" \"ref\":\"发变811层/机组1.电压1\",\n" +
" \"val\":\"0.56-kV\",\n" +
" \"vtype\":\"电压\",\n" +
" \"t\":\"2023-05-05 09:28:47.872\"\n" +
" }\n" +
" ]\n" +
"}"; JSONObject jsonObject = JSONObject.parseObject(msg);
HelloSpringMsg helloReq = new HelloSpringMsg();
helloReq.setJson(String.valueOf(jsonObject)); //具体接口
demoSpringAction.here(helloReq); long endTime = System.currentTimeMillis();
System.out.println(Thread.currentThread().getName() + " ended at: " + endTime + ", cost: " + (endTime - startTime) + " ms.");
} catch (Exception e) {
e.printStackTrace();
}
} }

  3.两个静态变量定义

    /** * 定义并发线程数量 */
public static final int THREAD_NUM = 100;
/** * 开始时间 */
private static long startTime = 0L;

  4.查看控制台调用情况

java多线程压力测试接口的更多相关文章

  1. Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock

    在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(Reentrant ...

  2. 记一次完整的java项目压力测试

    总结:通过这次压力测试,增加了对程序的理解:假定正常情况下方法执行时间为2秒,吞吐量为100/s,则并发为200/s:假设用户可接受范围为10s,那么并发量可以继续增加到1000/s,到这个时候一切还 ...

  3. java 多线程:Callable接口;FutureTask类实现对象【Thread、Runnable、Callable三种方式实现多线程的区别】

    Callable接口介绍: Java5开始,Java提供了Callable接口,像是Runnable接口的增强版,Callable接口提供了一个 call()方法可以作为线执行体. call()方法比 ...

  4. Java多线程的~~~Lock接口和ReentrantLock使用

    在多线程开发.除了synchronized这个keyword外,我们还通过Lock接口来实现这样的效果.由Lock接口来实现 这样的多线程加锁效果的优点是非常的灵活,我们不在须要对整个函数加锁,并且能 ...

  5. java多线程--实现Runnable接口方式

    因为java类只能继承一个类可以实现多个接口的特性,所以一般情况下不推荐使用继承Thread类实现多线程,下面是实现Runnable接口方式的简单多线程代码 package text; /** * 多 ...

  6. java多线程--实现Runnable接口

    package unit8; import java.applet.Applet; import java.awt.Label; import java.awt.TextField; public c ...

  7. java使用Test测试接口类

    package com.jy.demo.web; import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; ...

  8. Java实现压力测试---可输出请求信息、error信息

    import java.io.; import java.net.; import java.util.; import java.util.concurrent.; public class Tes ...

  9. Java项目压力测试(待补)

    JVM监控使用ava自带jvisualvm,在java安装目录jdk1.*/bin下(有很多更高级的东西 线程2000以下,太多切换太消耗.CPU使用率30%以下,更健壮

  10. (转)学习使用Jmeter做压力测试(一)--压力测试基本概念

    一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下 ...

随机推荐

  1. bee must have one register DataBase alias named `default`

    bee must have one register DataBase alias named default 在你初始化db,注册默认数据库时,看看你是否import初始化注册数据库驱动driver ...

  2. Thinkphp3.2 PHPMailer 发送邮件

    第一步 :下载附件PHPMailer解压到ThinkPHP\Library\Vendor 第二步:在Common文件夹中的公共函数function.php中写一个发送邮件的函数, 这样可以在项目任意位 ...

  3. [每日算法 - 华为机试] 剑指 Offer 10- II. 青蛙跳台阶问题

    入口 力扣https://leetcode.cn/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/ 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该 ...

  4. Linux性能分析-CPU上下文切换

    前言 在Linux性能分析-平均负载中,提到过一种导致平均负载升高的情况,就是有大量进程或线程等待cpu调度. 为什么大量进程或者线程等待CPU调度会导致负载升高呢? 当大量进程或者线程等待调度时,c ...

  5. 【Linux】3.4 用户管理

    用户管理 1. 基本用户管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  6. 【Git】工作流

    Git 工作流 概念 在项目开发过程中使用 Git 的方式 分类 集中式工作流 像 SVN 一样,集中式工作流以中央仓库作为项目所有修改的单点实体.所有 修改都提交到 Master 这个分支上. 这种 ...

  7. Visual Studio Browser Link

    用Visual Studio 2013 | 2015(不知道其他版本会不会)创建的项目(WebForm & MVC), 直接运行访问的页面源码会出现如下内容: 而这个莫名其妙多出来的Visua ...

  8. 子图,生成子图(Spanning Subgraph),导出子图(Induced Subgraph)的定义

    原图G用\(G=(V,E)\)表示,\(V\)是\(G\)中的所有顶点的集合:\(E\)是\(G\)中所有边的集合. 子图 定义:子图\(G '\)中的所有顶点和边均包含于原图\(G\).即\(E'∈ ...

  9. 经过几天的努力Biwen.AutoClassGen终于实现了DTO复杂属性的生成

    前言 距写上一篇 https://www.cnblogs.com/vipwan/p/18535459 生成DTO已经有一段时间了, 最初没有考虑复杂二级属性嵌套的实现,而是直接使用排除使用自定义的方式 ...

  10. Linux下安装node及npm

    Linux下安装node 1.解压 $ tar zxf node-v8.9.0-linux-x64.tar.gz 2.移动到指定目录 $ mv node-v8.9.0-linux-x64 /usr/l ...