ReentrantLock和synchronized在低并发的时候性能差距不大,本次主要测试高并发时的性能。
使用ReentrantLock
public class SysDemoTest implements Runnable{
private HashMap<String,Integer> x;
private CountDownLatch latch;
private CountDownLatch end;
private ReentrantLock lock;
SysDemoTest(HashMap<String,Integer> x,CountDownLatch latch,ReentrantLock lock,CountDownLatch end){
this.x = x;
this.latch = latch;
this.lock = lock;
this.end = end;
}
public static void main(String[] args) {
ReentrantLock lock = new ReentrantLock();
CountDownLatch latch = new CountDownLatch(1000);
CountDownLatch end = new CountDownLatch(1000);
HashMap<String,Integer> x = new HashMap<String,Integer>();
x.put("1", 0);
long start = System.currentTimeMillis();
SysDemoTest test = new SysDemoTest(x,latch,lock,end);
for(int i = 0 ;i <1000;i++) {
Thread t = new Thread(test);
t.start();
latch.countDown();
}
try {
end