0°

锁粗化

  • 锁粗化

我们在日常的多线程开发时,常常会把同步代码块的作用范围控制的尽量小,目的就是保证线程可以尽快的获得锁和释放锁,进而提高程序的运行效率。但是我们知道,线程在获取锁和释放锁时,是需要消耗一些系统资源的。如果程序频繁的获取锁和释放锁,那么势必会影响程序的运行效率。所以虚拟机为了解决出线的这种对程序性能的损耗, 程序在运行时虚拟机就会检查如果发现有一连串的操作都对同一个对象加锁,例如把加锁操作写在循环里,这时虚拟机就会把加锁的同步范围粗化到整个操作的外部,可以理解将讲同步代码块的范围添加到循环外,这样程序在运行时,只需要执行一次获取锁和释放锁的操作就可以了,从而提升程序的运行效率。

未分类
未分类
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论