并发测试 JavaDemo
/** | |
* @author Jerry Lee | |
*/ | |
public class Testee { | |
static long countTimeIn500ms = 0; | |
public static void main(String[] args) throws Exception { | |
countTimeIn500ms = guessCountTimeIn500ms(); | |
Thread runAndSleepTask = new Thread(new RunAndSleepTask(), "RunAndSleepTask"); | |
Thread runAndWaitTask = new Thread(new RunAndWaitTask(), "RunAndWaitTask"); | |
Thread runAndLongSleepTask = new Thread(new RunAndLongSleepTask(), "RunAndLongSleepTask"); | |
runAndSleepTask.start(); | |
runAndWaitTask.start(); | |
runAndLongSleepTask.start(); | |
System.out.println("Tasks started!"); | |
Thread.sleep(Long.MAX_VALUE); | |
} | |
public static class RunAndSleepTask implements Runnable { | |
@Override | |
public void run() { | |
String name = this.getClass().getSimpleName(); | |
while (true) { | |
for (long i = 0; i < countTimeIn500ms; i++) { | |
} | |
System.out.println(name + ": " + new Date()); | |
try { | |
Thread.sleep(500); | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
} | |
} | |
} | |
public static class RunAndWaitTask implements Runnable { | |
@Override | |
public void run() { | |
String name = this.getClass().getSimpleName(); | |
while (true) { | |
for (long i = 0; i < countTimeIn500ms; i++) { | |
} | |
try { | |
System.out.println(name + ": " + new Date()); | |
synchronized (this) { | |
this.wait(500); | |
} | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
} | |
} | |
} | |
public static class RunAndLongSleepTask implements Runnable { | |
@Override | |
public void run() { | |
String name = this.getClass().getSimpleName(); | |
while (true) { | |
for (long i = 0; i < countTimeIn500ms; i++) { | |
} | |
System.out.println(name + ": " + new Date()); | |
try { | |
Thread.sleep(5000); | |
} catch (InterruptedException e) { | |
e.printStackTrace(); | |
} | |
} | |
} | |
} | |
/** | |
* @return 100ms可以做{@code long}的计数次数。 | |
*/ | |
static long guessCountTimeIn500ms() { | |
System.out.println("start guess."); | |
long count = 1000L * 1000 * 1000; | |
// simple warm-up | |
for (long i = 0; i < count; i++) { | |
// nothing! | |
} | |
long tick = System.currentTimeMillis(); | |
for (long i = 0; i < count; i++) { | |
// nothing! | |
} | |
long duration = System.currentTimeMillis() - tick; | |
System.out.printf("1G times count take %d ms.\n", duration); | |
return count * 500 / duration; | |
} | |
} |
并发测试 JavaDemo的更多相关文章
- Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现
Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 1. 应用场景 1 2. 随机抽取数据原理 1 3. 常用的实现方法:::数据库随机函数 1 4. Mssq ...
- appium 并发测试
Android并发测试 Appium提供了在一台设备上启动多个Android会话的方案,而这个方案需要你输入不同的指令来启动多个Appium服务来实现. 启动多个Android会话的重要指令包括: - ...
- Fiddler 接口测试(Composer)的使用方法及并发测试
下载地址:https://www.telerik.com/download/fiddler 一.Composer简介 右侧Composer区域,是测试接口的界面: 相关说明: 1.请求方式:点开可以勾 ...
- spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
一.项目介绍(本项目用的编程语言是jdk8,项目源码:https://github.com/zhzhair/spring-boot-druid.git) 1.引入pom依赖: <dependen ...
- 使用postman进行并发测试
1.打开postman软件 左侧栏点击+号键,创建一个并发测试文件夹 2.主面板点击+号键,输入一个测试地址,点击save按钮保存到并发测试文件夹 3.点击三角箭头,再点击Run,弹出Collecti ...
- Jmeter对HTTP请求压力测试、并发测试的简单使用方法
对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...
- 协议并发测试工具 BoHexTest
BoHexTest V1.0.3 1.添加连接LOG打印2.优化代理及并发策略 大小: 1074688 字节修改时间: 2017年10月3日, 10:24:26MD5: EBAE5A17F7F5ED0 ...
- SoapUI 利用SoapUI进行简单的接口并发测试
利用SoapUI进行简单的接口并发测试 by:授客 QQ:1033553122 测试环境: SoapUI Pro 5.1.2 步骤如下 1. 把请求添加到测试套件 1.1. 途径1 1.新 ...
- Java接口多线程并发测试 (一)
本文为作者原创,禁止转载,违者必究法律责任!!! 本文为作者原创,禁止转载,违者必究法律责任!!! Java接口多线程并发测试 一,首先写一个接口post 请求代码: import org.apach ...
随机推荐
- Linux安装pear包
一.安装pear包. 1.安装: $ sudo wget http://pear.php.net/go-pear.phar $ sudo php go-pear.har 2.查看pear下安装的包: ...
- 005-Go 操作PostgreSQL数据库
package main import( "fmt" "database/sql" _ "github.com/lib/pq" " ...
- js 开源k线图开发库
https://github.com/andredumas/techan.js/wiki http://techanjs.org/ A visual, stock charting (Candlest ...
- 在hadoop上运行java文件
hadoop 2.x版本 编译:javac -d . -classpath /usr/lib/hadoop/hadoop-common-2.2.0.2.0.6.0-102.jar TestGetPat ...
- [转]URL汉字编码问题(及乱码解决)
一.问题的由来 URL就是网址,只要上网,就一定会用到. 一般来说,URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和符号.比如,世界上有英文字母的网址 “http://www.ab ...
- Java对象池技术的原理及其实现
看到一片有关于java 对象基础知识,故转载一下,同时学习一下. 摘 要 本文在分析对象池技术基本原理的基础上,给出了对象池技术的两种实现方式.还指出了使用对象池技术时所应注意的问题. 关键词 对象池 ...
- Centos7新装配置, 并使用openvpn client长连接远程备份
1. 修改本机hostname // 查看本机hostname hostnamectl //永久性的修改主机名称, 修改完后新开的terminal中立刻生效. 也可以直接修改 /etc/hostnam ...
- git for c#,文件改动内容
private static void pushModify() { string wkDir = @"E:\DotNet2010\单位project\Git.Client\lib2Test ...
- HOOK 底层键盘消息---WH_KEYBOARD_LL
代码:屏蔽三个全局快捷键 代码的作用是屏蔽掉凝视中的三个快捷键. LRESULT CALLBACK LowLevelKeyboardProc (INT nCode, WPARAM wParam, LP ...
- iOS linker command failed with exit code 1 (use -v to see invocation)多种解决方案汇总
有时可能会遇到这种错误,关键是这种错误,有时只有这一句话,也不会给更多错误信息. 网上找了一些,总结了如下:(PS:以下是按照解决简易程度排序,不代表出现概率) 1.bitcode问题 解决如下:原因 ...