synchronized

锁消除:JVM通过逃逸分析发现作为锁的对象是局部对象时,则会把锁消除来提高性能。

锁粗化:当JVM发现一个线程不停地进行一个资源的请求与释放时(循环),则会将同步代码块的范围扩大,提高性能。

偏向锁:消除事实上只有一个线程的情况下CAS造成的浪费问题。

轻量锁:如果持有锁的线程能在很短时间内释放锁资源,那么其他线程则不需要阻塞,可以通过自旋的方式获得锁,避免重量级锁的阻塞和唤醒,提高程序的响应速度。

重量级锁:在多线程同时竞争激烈的情况下,不使用自旋,不会消耗CPU。

static synchronized:全局锁,针对类,无论实例多少个对象,都共享该锁。

 

posted @ 2020-09-11 21:01  昆梧  阅读(178)  评论(0)    收藏  举报