锁优化

一.自旋锁和自适应自旋锁

    自旋锁:不让线程挂起,(需要一个以上的处理器)让其短时间(可以设定,超时则挂起线程)执行一个忙循环,

    自适应自旋锁:不固定等待时间,由虚拟机自行判断是否挂起(类似人工智能)

二.锁消除

    编译器运行时,消除实现同步被检测到不可能存在共享数据竞争的锁消除,(其实是大部分消除javaAPI中非程序员加的锁)

三.锁粗化,大部分时候尽量锁的范围越小越好,但在循环中反复加锁,浪费性能,不如在循环外加锁

四.轻量级锁:

无.偏向锁:在无竞争的情况下,将同步去掉    

    

posted @ 2017-03-04 00:34  我_会飞的鱼  阅读(114)  评论(0编辑  收藏  举报