public class Atest {
public final static int count = 10000;
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
// test1();//cost = [200902] cost = [301728]
test2();//cost = [593]
long endTime = System.currentTimeMillis();
System.out.println("cost = [" + (endTime - startTime) + "]");
}
public static void test1(){
for(int i = 0; i < count; i ++){
AtomicInteger atomicInteger = new AtomicInteger(i);
Future<Boolean> future = ThreadPoolUtils.CRM_TEMPLATE_MESSAGE_SEND_THREAD_POOL.submit(new TestCallabele(i));
FunctionUtil.runIgnoreException(() -> insert(atomicInteger.get(), future.get()));
}
}
public static void test2(){
for(int i = 0; i < count; i ++){
AtomicInteger atomicInteger = new AtomicInteger(i);
ThreadPoolUtils.CRM_TEMPLATE_MESSAGE_SEND_THREAD_POOL.execute(() -> {
FunctionUtil.runIgnoreException(() -> insert(atomicInteger.get(), handleTask(atomicInteger.get())));
});
}
}
public static void insert(int taskNum, Boolean bool){
try {
Thread.sleep(100L);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("insert into t_b values (" + taskNum + "," + bool + ")");
}
public static Boolean handleTask(int taskNum){
return FunctionUtil.getIgnoreException(() -> {
Thread.sleep(200L);
System.out.println(">>>任务" + taskNum + "启动");
return true;
}, false).get();
}
}
class TestCallabele implements Callable{
private int taskNum;
public TestCallabele(int taskNum){
this.taskNum = taskNum;
}
@Override
public Object call() throws Exception {
return Atest.handleTask(taskNum);
}
}
future.get()阻塞测试
最新推荐文章于 2023-11-30 14:29:13 发布