通常我们建的线程并发执行都有优先级顺序,不能很好的体现并发;我们下边介绍的方法,能够满足同事触发的需求;
timeTasks(int nThreads, final Runnable task)方法中第一个参数是你设置的并发数,第二个是传入的执行类;
你只要新建一个实现Runnable的执行类,调用timeTasks方法,就可以测试以下你的执行类的并发性能
代码如下:
public class TestHarness {
public long timeTasks(int nThreads, final Runnable task)
throws InterruptedException {
final CountDownLatch startGate = new CountDownLatch(1);
final CountDownLatch endGate = new CountDownLatch(nThreads);
for (int i = 0; i < nThreads; i++) {
Thread t = new Thread() {
public void run() {
try {
startGate.await();
try {
task.run();
} finally {
endGate.countDown();
}
} catch (InterruptedException ignored) {
}
}
};
t.start();
}
long start = System.nanoTime();
startGate.countDown();
endGate.await();
long end = System.nanoTime();
return end - start;
}
}