java多线程查询_java多线程遍历list元素,作为参数查询接口的改造过程

先来看一下改造前的模拟代码

这边模拟遍历一个大小是100的list,遍历每个元素去查询运行时间

public classServiceDemo {public static voidmain(String[] args) {

List deviceEntities=getAllDevices();long currentTimeMillis =System.currentTimeMillis();for(DeviceEntity deviceEntity : deviceEntities) {

getDeviceRunTime(deviceEntity);

}long currentTimeMillis2 =System.currentTimeMillis();

System.out.println("查询了"+(currentTimeMillis2-currentTimeMillis)+"毫秒");

}//模拟根据设备信息获取设备运行时间

public static voidgetDeviceRunTime(DeviceEntity deviceEntity) {

deviceEntity.setRunTime("运行了"+deviceEntity.getDeviceId()+"天");//模拟接口阻塞时间100毫秒

try{

Thread.sleep(100L);

}catch(InterruptedException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}//假设有100台设备

public static ListgetAllDevices() {

List deviceEntities=new ArrayList<>();for (int i = 1; i <= 100; i++) {

DeviceEntity deviceEntity=newDeviceEntity();

deviceEntity.setDeviceId(i);

deviceEntity.setDeviceName("设备"+i);

deviceEntity.setDeviceIp("192.168.100."+i);

deviceEntities.add(deviceEntity);

}returndeviceEntities;

}

}

实体类代码如下:

public classDeviceEntity {private intdeviceId;privateString deviceName;privateString deviceIp;privateString runTime;public intgetDeviceId() {returndeviceId;

}public void setDeviceId(intdeviceId) {this.deviceId =deviceId;

}publicString getDeviceName() {returndeviceName;

}public voidsetDeviceName(String deviceName) {this.deviceName =deviceName;

}publicString getDeviceIp() {returndeviceIp;

}public voidsetDeviceIp(String deviceIp) {this.deviceIp =deviceIp;publicString getRunTime() {returnrunTime;

}public voidsetRunTime(String runTime) {this.runTime =runTime;

}

@OverridepublicString toString() {return "DeviceEntity [deviceId=" + deviceId + ", deviceName=" + deviceName + ", deviceIp=" +deviceIp+ ", runTime=" + runTime + "]";

}

运行ServiceDemo类的main方法,控制台输出如下,因为模拟具体的查询接口的阻塞时间是100毫秒,那么100次查询也就是10秒时间

91d87e4a88c5e48b11c0519b11f29ad2.png

接下来我们采用多线程查询,直接在ServiceDemo类的main方法中改造

public static voidmain(String[] args) {

List deviceEntities =getAllDevices();long

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值