CyclicBarrier+Executors+Runnable结合,多线程执行(2)
1、需求和如何实现
1.1、需求
需求:需要使用Java代码编写性能测试程序针对单独的算法进行性能测试
想法:通过CyclicBarrier+Executors+Runnable结合,实现多线程下的算法性能测试
1.2、实现方式
实现方式如下:
CyclicBarrier+线程池的调用方式
1、定义一个 Runnable接口的实现类EncTask类(CyclicBarrier对象构造方法),重写 run 方法,实现自己的业务逻辑,在run方法中调用barrier.await()
2、主类SDKTest的Main方法通过线程数执行“任务实现类对象”的任务
2.1、创建1个CyclicBarrier对象
2.2、创建一个拥有固定线程数的线程池对象
2.3、通过 ExecutorService 对象的 execute 方法将任务(创建新的任务对象,传参CyclicBarrier对象给任务)添加到线程去执行。
多个线程同时处理多个不同资源(每个线程各执行各的任务)