并发测试JavaDemo

更新时间:2023-05-11 10:43:25 阅读: 评论:0

并发测试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 =Class().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 =Class().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 =Class().getSimpleName();
String name =Class().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;
}
}

本文发布于:2023-05-11 10:43:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/584221.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   计数   并发   次数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图