信息介绍
所谓“锁优化”是指在并发环境下进行编程时,降低加锁所带来的性能上的损坏。规范加锁的操作、优化锁的使用方法、避免不必要的线程竞争,不仅可以提高程序性能,也能避免不规范加锁可能造成线程死锁问题,提高程序健壮性。下面就给大家分享一下Java编程入门学习中有关锁优化的知识。
常见的锁的类型有偏向锁、自旋锁、轻量级锁和重量级锁四种,不同的锁有不同的适合场景。比如偏向锁适用于只有一个线程访问同步块场景;轻量级锁适合追求响应时间,锁占用时间很短的场景;重量级锁适用于追求吞吐量,锁占用时间较长的场景。
在编码过程中可以采取的锁优化思路主要有五种:
1、减少锁持有时间。对一个方法加锁,不如对方法中需要同步的几行代码加锁;
2、减小锁粒度。比如ConcurrentHashMap采取对segment加锁而不是整个map加锁,提高并发性;
3、锁分离。根据同步操作的性质,把锁划分为的读锁和写锁,读锁之间不互斥,提高了并发性。
4、锁粗化。在一个间隔性地需要执行同步语句的线程中,如果在不连续的同步块间频繁加锁解锁是很耗性能的,因此把加锁范围扩大,把这些不连续的同步语句进行一次性加锁解锁。虽然线程持有锁的时间增加了,但是总体来说是优化了的。
5、锁消除。锁消除是编译器做的事:根据代码逃逸技术,如果判断到一段代码中,堆上的数据不会逃逸出当前线程(即不会影响线程空间外的数据),那么可以认为这段代码是线程安全的,不必要加锁。
欢迎具体了解:郑州Java培训机构http://zz.mobiletrain.org/java/
常见的锁的类型有偏向锁、自旋锁、轻量级锁和重量级锁四种,不同的锁有不同的适合场景。比如偏向锁适用于只有一个线程访问同步块场景;轻量级锁适合追求响应时间,锁占用时间很短的场景;重量级锁适用于追求吞吐量,锁占用时间较长的场景。
在编码过程中可以采取的锁优化思路主要有五种:
1、减少锁持有时间。对一个方法加锁,不如对方法中需要同步的几行代码加锁;
2、减小锁粒度。比如ConcurrentHashMap采取对segment加锁而不是整个map加锁,提高并发性;
3、锁分离。根据同步操作的性质,把锁划分为的读锁和写锁,读锁之间不互斥,提高了并发性。
4、锁粗化。在一个间隔性地需要执行同步语句的线程中,如果在不连续的同步块间频繁加锁解锁是很耗性能的,因此把加锁范围扩大,把这些不连续的同步语句进行一次性加锁解锁。虽然线程持有锁的时间增加了,但是总体来说是优化了的。
5、锁消除。锁消除是编译器做的事:根据代码逃逸技术,如果判断到一段代码中,堆上的数据不会逃逸出当前线程(即不会影响线程空间外的数据),那么可以认为这段代码是线程安全的,不必要加锁。
欢迎具体了解:郑州Java培训机构http://zz.mobiletrain.org/java/
联系方式
0371-55191750
温馨提示
1、信息由网友自行发布,平台仅提供信息展示服务,请主动核实信息真实性,避免上当!
2、如发现虚假、违规信息?点此举报
2、如发现虚假、违规信息?点此举报
发布供求信息
最新供求
新
磊硕紫色PPSU塑料棒 Φ80*1000mm 医疗器械结构件用 耐高压聚苯砜棒材
新
磊硕紫色PPSU棒材 Φ90×1000mm 耐水解性能优异 食品机械配件用
新
磊硕紫色聚苯砜PPSU棒材 Φ75mm 高冲击强度 适配加热装置零件
新
磊硕紫色PPSU棒材 Φ30×1000mm 高温热水环境适用 聚苯砜材料
新
磊硕紫色PPSU圆棒 Φ60×1000mm 工业设备热水系统结构材料
新
上海自动门滑轮维修感应门马达维修 玻璃门地弹簧 控制器 感应器维修安装
新
上海凯旋路专业维修安装密码门禁维修 刷卡门禁维修
新
磊硕高性能聚苯硫醚板 可持续加工 多规格现货供应
新
磊硕PPS板材可替代金属结构件 轻量化耐热高强度塑料板
新
磊硕耐腐蚀耐磨PPS板 石油化工设备用聚苯硫醚塑料板
推荐供求