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. linux centos8 mirrorlist: No URLs in mirrorlist,更新yum源

    前言 由于官方已经在2021/12/31停止了对CentOS 8的支持,所以需要更新 yum 源,才能使用 更新镜像源 这里用的是阿里的 yum 镜像源 将源文件备份 cd /etc/yum.repo ...

  2. OkHTTP发送POST请求传送JSON数据

    导入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> ...

  3. PIO----创建Excel表格复杂使用

    导出 @RequestMapping( name = "下载模板附件实现Model", value = {"/uploadFileModel"}, method ...

  4. 如何设置家用威联通 NAS UPS 断电后自动关机并通知其他设备?

    场景 备注: 求轻喷, 求放过. 我真的是个理线方面的白痴. 这已经是我的极限了. 我的家庭实验室 Homelab 服务器集群配置如下. 上半部分之前已经介绍过了, 这里就不再赘述了. 今天重点介绍介 ...

  5. 一文搞懂MCP协议与Function Call的区别

    一.前言 大家好,我是六哥! 今天咱们聊聊编程里两个听起来有点复杂的概念--MCP协议和函数调用(function call),其实用大白话来讲,它们就是两种不同的"沟通方式",就 ...

  6. 泛型--java进阶day10

    1.泛型 2.泛型--统一数据类型 如下图,当我们在泛型中添加不同的数据类型,add方法需要的数据类型也随之改变 [1] [2] 泛型--默认类型object 当我们不指定泛型时,泛型的默认类型为ob ...

  7. 【JDBC第8章】数据库连接池

    第8章:数据库连接池 8.1 JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接 进行sql操作 ...

  8. Python+硅基流动API实现小说转有声读物

    一.注册硅基流动账号获取文本转语音api 1.注册登录硅基流动 注册.登录硅基流动 查看apikey 查看赠送的免费额度 点击文档中心 2.查看文本转语音api 查看文本转语音api 查看api使用指 ...

  9. k8s集群创建之后coredns一直处于pending状态

    按照官网教程 master节点kubectl init, 每个从节点kubectl join之后, 在master节点执行 kubectl get pods -n kube-system,发现core ...

  10. 基于Spring Boot的HTTP请求签名验证实现解析

    概述 在分布式系统交互中,API接口的安全性至关重要.本文将深入解析基于Spring Boot实现的HTTP请求签名验证机制,该方案支持GET/POST等多种请求方式,提供时效性验证和数据完整性保障. ...