java callback 多线程_JAVA Callback效率测试

在最近的联网电商项目中,想要实现单个web容器内的支付请求,全部能够统一宏观上同步,实现粒度上面异步,找来找去,没有相关方面的框架或者方案,于是最后基于现实场景,打算使用Java callback 的多线程方式,假象伪并发量为100000

/**

*

* @author gyx

*

*/

public class A

{

private double  id = 0;

public A(double  id)

{

this.setId(id);

}

public double  getId()

{

return id;

}

public void setId(double  id)

{

this.id = id;

}

/**

* 线程类

* @author gyx

*

*/

public class MyCallable implements Callable

{

private A obj;

/**

* 线程类构造函数,传入线程序号

* @param taskNum

*/

public MyCallable(A obj)

{

this.setObj(obj);

}

/**

* 重写接口的方法,子线程调用

* 此方法是生成0-99的数字,(百位表示子线程序号)用list返回

*/

public A call() throws Exception

{

Date dateTmp1 = new Date();

System.out.println("business_start.............and------begin" + this.getObj().getId());

this.getObj().setId(Math.random() * 1000000000);

Date dateTmp2 = new Date();

long time = dateTmp2.getTime() - dateTmp1.getTime();

System.out.println("线程" + Thread.currentThread().getId() + "任务时间【" + time + "毫秒】");

return this.getObj();

}

public A getObj()

{

return obj;

}

public void setObj(A obj)

{

this.obj = obj;

}

/**

* @author gyx

*主线程调用

*/

public class Test

{

public static void main(String[] args) throws InterruptedException, ExecutionException

{

try

{

System.out.println("----程序开始运行----");

Date date1 = new Date();

int taskSize = 100000;

// 创建一个线程池

//            ExecutorService pool = Executors.newFixedThreadPool(4);

ExecutorService pool = Executors.newCachedThreadPool();

// 创建多个有返回值的任务

List> list = new ArrayList>();

for (int i = 0; i < taskSize; i++)

{

System.out.println("the current  is ............" + i);

Callable c = new MyCallable(new A(0));

// 执行任务并获取Future对象

Future f = pool.submit(c);

System.out.println("get-result----------------------" + f.get().getId());

list.add(f);

}

// 关闭线程池

pool.shutdown();

Date date2 = new Date();

System.out.println("----程序结束运行----,程序运行时间【"   + (date2.getTime() - date1.getTime()) + "毫秒】");

// 获取所有并发任务的运行结果

//          for (Future f : list)

//          {

//              // 从Future对象上获取任务的返回值,并输出到控制台

//              System.out.println("get-result----------------------" + f.get().getId());

//          }

}

catch(Exception e)

{

e.printStackTrace();

System.exit(0);

}

finally

{

System.exit(0);

}

}

}

结果为:----程序结束运行----,程序运行时间【26351毫秒】

调整线程池:

ExecutorService pool = Executors.newFixedThreadPool(2);

结果为:----程序结束运行----,程序运行时间【17128毫秒】

调整线程池:

ExecutorService pool = Executors.newFixedThreadPool(1);

结果为:程序运行时间【16269毫秒】

结论:newCachedThreadPool 效率最差,线程数小于cpuh核心 2/1 效率相对高,代价也比较平稳,处理当下假想,基本满足要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯视频下载格式_怎么下载腾讯视频

不管这个腾讯视频好用与否&#xff0c;都有一大批用户&#xff0c;本文播放器家园网小编分享腾讯视频下载格式_怎么下载腾讯视频。腾讯视频时刻为您推荐最新最火的视频&#xff0c;精彩不断随时观看。支持各种画质的下载&#xff0c;没网也能享受高视觉的享受&#xff0c;让生活…

腾讯视频下载官方_腾讯视频评论在哪

本文给大家整理了腾讯视频下载官方_腾讯视频评论在哪方面的内容。腾讯视频影音是一款界面轻松友好&#xff0c;功能全面完善&#xff0c;方便好用&#xff0c;绿色安全&#xff0c;完全免费的、专注视频播放的客户端软件&#xff0c;您可运行腾讯视频影音&#xff0c;在线享受腾…

java 复写_课程5.4之函数的复写(override)

本节课程将学习以下内容&#xff1a;函数的复写(override)使用super调用父类的成员函数函数的复写(override)复写(override)&#xff0c;也被称为覆盖或者重写。在你对父类的成员方法不满意的时候&#xff0c;你可以在子类中复写这个方法&#xff0c;来写出符合自己要求的方法。…

mongodb与java连接_MongoDBJava连接

Java 连接MongoDB package mymaven;import java.net.UnknownHostException;import java.util.Set;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;imporJava 连接MongoDBp…

糖果浏览器和139邮箱巧妙应用:将网页文字一键发送到手机上

核心提示&#xff1a;我们有时需要将一些网页中的文字发送到手机上&#xff0c;如商务会谈前&#xff0c;将出行路线和目的地地址发送到手机上便于查看。但是每次都需要手动录入到手机上&#xff0c;费时费力。 我们有时需要将一些网页中的文字发送到手机上&#xff0c;如商务…

Java飞机大战敌机消失_Shoot 飞机大战,功能是子弹打在敌机上, 消失 且在内存中 , 小蜜蜂上同理 Games 游戏 247万源代码下载- www.pudn.com...

文件名称: Shoot下载 收藏√ [5 4 3 2 1 ]所属分类: Games开发工具: Java文件大小: 371 KB上传时间: 2015-12-01下载次数: 0提 供 者: 刘星详细说明&#xff1a;飞机大战&#xff0c;功能是子弹打在敌机上&#xff0c;子弹消失敌机消失且在内存中消失&#xff0c;打在小蜜…

UC浏览器云标签怎么用 UC浏览器云标签使用方法

核心提示&#xff1a;相信很多机友都会使用UC浏览器&#xff0c;但是其多个功能你们能了解多少? 下面小编就为大家介绍UC浏览器云标签使用方法吧! 1、打开【UC浏览器】&#xff0c;点击【多窗口】按钮&#xff0c;然后点击【云标签】;(如下图所示) 2、登陆微博、QQ等&#…

谷歌浏览器怎么设置主页教程

谷歌浏览器怎么设置主页教程 谷歌浏览器怎么设置主页?目前&#xff0c;在世界范围内谷歌浏览器成为了仅次于ie浏览器的第二大主流浏览器&#xff0c;那么&#xff0c;谷歌浏览器主页怎么设置呢?针对此问题&#xff0c;下文浏览器家园小编就为大家图文介绍一下xx谷歌浏览器设置…

日志分析告警实现java_关于Aborted connection告警日志的分析

前言&#xff1a;有时候&#xff0c;连接MySQL的会话经常会异常退出&#xff0c;错误日志里会看到"Got an error reading communication packets"类型的告警。本篇文章我们一起来讨论下该错误可能的原因以及如何来规避。1.状态变量Aborted_clients和Aborted_connects…

UC浏览器APP如何卸载插件

现在很多用户在使用浏览器的时候都会安装一些插件辅助使用&#xff0c;方便用户享受更多便捷的功能&#xff0c;很多用户都会安装相关的插件服务&#xff0c;方便用户更好的使用&#xff0c;那么在用户不需要这些插件的时候要如何删除呢?今天小编就会与大家一起来分享一下浏览…

java在控制台输出sql_logger4j配置数据库sql输出控制台

#--------------------------------# 设定logger的root level为DEBUG/ERROR/info&#xff0c;指定的输出目的地(appender)为stdoutlog4j.rootLoggerERROR, stdout, fileout#log4j.logger.testinfo#log4j.logger.org.apache.jasper DEBUG#log4j.logger.org.apache.catalina.sta…

爱奇艺2020官方下载_爱奇艺视频如何上传

软件是否好用&#xff0c;还得大家下载爱奇艺安装才知道。本文分享爱奇艺2020官方下载_爱奇艺视频如何上传。爱奇艺电影频道拥有大量高清在线电影资源&#xff0c;热门高清电影、好评电影、电影预告都可以在线观看&#xff0c;不去电影院也能看好电影&#xff0c;而且是看所有电…

网页java在div输出内容_JS实现读取xml内容并输出到div中的方法示例

本文实例讲述了JS实现读取xml内容并输出到div中的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;note.xml文件结构:GeorgeJohnReminderaJohnReminderGeorgeJohnReminder利用js将xml输出到div中&#xff1a;www.jb51.net js读取xml.aaaa{width: 30%;height: 50px;…

如何在优酷官网上传视频

当拍攝或是自做的视頻要想发送到在网上时&#xff0c;优酷视频便是一个非常好的视频网站&#xff0c;那如何把视频上传入优酷视频上呢? 01、 网站搜索并进到优酷官网。 如何在优酷官网上传视频 02、 在优酷主页点一下右上方的“登陆”标志&#xff0c;键入登录密码登陆优酷…

java枚举加载顺序_java 中类的加载顺序(转)

1、虚拟机在首次加载Java类时&#xff0c;会对静态初始化块、静态成员变量、静态方法进行一次初始化2、只有在调用new方法时才会创建类的实例3、类实例创建过程&#xff1a;按照父子继承关系进行初始化&#xff0c;首先执行父类的初始化块部分&#xff0c;然后是父类的构造方法…

PP视频如何关闭下载完成通知我

播放器软件很多&#xff0c;本文小编给大家推荐PP视频。PP视频以优质的纯网内容&#xff0c;多元、贴心的生活服务态度&#xff0c;为用户打造一个人与服务相连接的全方位移动视频平台。大家通过PP视频播放器&#xff0c;可以观看到PP视频网站上的所有影视剧等视频资源。目前PP…

java开发遇到最大的问题_java开发遇到的问题总结(三)

25、使百分比的数据显示2位小数publicstaticString div(doublev1,doublev2){DecimalFormat dfnewDecimalFormat("##0.00%");returndf.format(Double.valueOf((v1/v2)));}26、数据缓存问题1)在Action中声明private Cache ehCache;2)放入缓存publicvoidputEcache(){try…

腾讯视频电脑版下载_腾讯视频~如何用腾讯视频

今天继续给大家分享腾讯视频方面的内容。腾讯视频的主界面资源分类最广&#xff0c;为用户提供最新、最热的电影、电视剧、综艺、动漫、体育等视频节目。腾讯视频播放器采用了智能的P2P流媒体播放技术&#xff0c;支持丰富内容的在线点播及电视台直播。腾讯视频是一款可以电影资…

java 位运算 权限控制_java 位运算权限管控(转载)

这里笔者介绍一种很常用&#xff0c;也比较专业的权限控制思路。这里用java语言描述&#xff0c;其实都差不多的。要换成其他的语言主&#xff0c;自己转一下就可以了。为了方便起见&#xff0c;我们这里定义a^b为&#xff1a;a的b次方。这里&#xff0c;我们为每一个操作设定一…

优酷视频如何将地区设置为中国大陆

播放器软件很多&#xff0c;本文小编给大家推荐优酷视频&#xff0c;本文继续分享“优酷视频如何将地区设置为中国大陆”。优酷视频放器是优酷视频旗下的视频客户端产品&#xff0c;支持丰富内容的在线点播及电视台直播。作为国内首家&#xff0c;全力打造正版视频平台的优酷视…