java之synchronized、volatile关键字
synchronized锁的是对象而不是代码,可加在方法上或者代码块。如果将synchronized加在静态方法上,则锁的是该类的Class对象;加在普通方法上锁的是this当前对象;也可在类中定义私有变量Object o如:synchronized(o){...},锁定自定义对象。不过需要注意类中定义的被锁对象不能是String常量,Integer,Long等类型。
一个类中被synchronized锁定的方法和另外的非锁定方法可同时执行。另外synchronized有个锁升级的过程:在jdk1.6之前
原创
2020-05-26 22:10:33 ·
118 阅读 ·
0 评论