Java编程入门要学什么 怎么把握锁优化常识
本文摘要: Java编程入门要学什么?怎么把握锁优化常识?所谓“锁优化”是指在并发环境下进行编程时,下降加锁所带来的性能上的损坏。标准加锁的操作、优化锁的运用方法、防止没必要要的线程竞争,不只可以提高程序功能,也能防止不标准加锁可能形成线程死锁问题,提高

Java编程入门要学什么 怎么把握锁优化常识


Java编程入门要学什么?怎么把握锁优化常识?所谓“锁优化”是指在并发环境下进行编程时,下降加锁所带来的性能上的损坏。标准加锁的操作、优化锁的运用方法、防止没必要要的线程竞争,不只可以提高程序功能,也能防止不标准加锁可能形成线程死锁问题,提高程序强健性。下面就给我们共享一下Java编程入门学习中有关锁优化的常识。

常见的锁的类型有倾向锁、自旋锁、轻量级锁和分量级锁四种,不同的锁有不同的合适场景。比如倾向锁适用于只有一个线程拜访同步块场景;轻量级锁合适寻求呼应时刻,锁占用时间很短的场景;分量级锁适用于寻求吞吐量,锁占用时间较长的场景。

在编码过程当中可以采纳的锁优化思路主要有五种:

1、减少锁持有时间。对一个方法加锁,不如对方法中需要同步的几行代码加锁;

2、减小锁粒度。比如ConcurrentHashMap采纳对segment加锁而不是整个map加锁,提高并发性;

3、锁别离。依据同步操作的性质,把锁划分为的读锁和写锁,读锁之间不互斥,提高了并发性。

4、锁粗化。在一个间隔性地需要履行同步语句的线程中,假如在不接连的同步块间频频加锁解锁是很耗性能的,因此把加锁规模扩展,把这些不接连的同步语句进行一次性加锁解锁。虽然线程持有锁的时间添加了,可是整体来说是优化了的。

5、锁消除。锁消除是编译器做的事:依据代码逃逸技能,假如判断到一段代码中,堆上的数据不会逃逸出其时线程(即不会影响线程空间外的数据),那么可以认为这段代码是线程安全的,没必要要加锁。

假如你想了解更多Java基础方面的常识点,你可以选择专业学习一下,让自己快速从基础到不断进阶,做企业高薪竞聘的精英。


相关内容