fix tester bug

This commit is contained in:
Looly 2021-06-16 19:23:53 +08:00
parent 3b38125d4e
commit ec60a4202d
4 changed files with 41 additions and 3 deletions

View File

@ -10,6 +10,7 @@
### 🐞Bug修复
* 【db 】 修复Oracle下别名错误造成的SQL语法啊错误issue#I3VTQW@Gitee
* 【core 】 修复ConcurrencyTester重复使用时开始测试未清空之前任务的问题issue#I3VSDO@Gitee
-------------------------------------------------------------------------------------------------------------

View File

@ -37,6 +37,8 @@ public class ConcurrencyTester {
* @return this
*/
public ConcurrencyTester test(Runnable runnable) {
this.sf.clearWorker();
timeInterval.start();
this.sf//
.addRepeatWorker(runnable)//
@ -47,6 +49,23 @@ public class ConcurrencyTester {
return this;
}
/**
* 重置测试器重置包括
*
* <ul>
* <li>清空worker</li>
* <li>重置计时器</li>
* </ul>
*
* @return this
* @since 5.7.2
*/
public ConcurrencyTester reset(){
this.sf.clearWorker();
this.timeInterval.restart();
return this;
}
/**
* 获取执行时间
*

View File

@ -197,6 +197,9 @@ public class SyncFinisher {
}
}
/**
* 任务内容
*/
public abstract void work();
}
}

View File

@ -1,10 +1,10 @@
package cn.hutool.core.thread;
import org.junit.Ignore;
import org.junit.Test;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.RandomUtil;
import org.junit.Ignore;
import org.junit.Test;
public class ConcurrencyTesterTest {
@ -18,4 +18,19 @@ public class ConcurrencyTesterTest {
});
Console.log(tester.getInterval());
}
@Test
@Ignore
public void multiTest(){
ConcurrencyTester ct = new ConcurrencyTester(5);
for(int i=0;i<3;i++){
Console.log("开始执行第{}个",i);
ct.test(() -> {
// 需要并发测试的业务代码
Console.log("当前执行线程:" + Thread.currentThread().getName()+" 产生时间 "+ DateUtil.now());
ThreadUtil.sleep(RandomUtil.randomInt(1000, 3000));
});
}
Console.log("全部线程执行完毕 "+DateUtil.now());
}
}