ReentrantLock和synchronized性能比较

本文探讨了在低并发与高并发场景中,ReentrantLock与synchronized的性能表现。在高并发测试中,计算100000000次,ReentrantLock耗时5789ms,而synchronized耗时8850ms。ReentrantLock借助CAS自旋操作,减少了线程切换带来的资源消耗,因此在高并发环境下性能更优。

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值