java基础---对象锁和类锁的区别

本文深入探讨了Java中synchronized关键字的使用方式及其效果。详细解释了synchronized应用于静态方法时作为类锁的作用,以及用于非静态方法时作为对象锁的行为。文章还说明了对象锁与类锁的区别,并通过实例阐述了这两种锁如何影响多线程环境下的方法执行。
synchronized 加到 static 方法前面是给class 加锁,即类锁;而synchronized 加到非静态方法前面是给对象上锁。
对象锁和类锁是不同的锁,所以多个线程同时执行这2个不同锁的方法时,是异步的。
类锁对该类的所有对象都能起作用,而对象锁不能。

大白话就是:一个线程执行同步的静态方法后,另一个线程就得等第一个线程执行完这个方法后才能继续执行。但是第二个线程可以异步地去执行非静态方法。
 

转载于:https://www.cnblogs.com/buptyuhanwen/p/9412711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值