对synchronized关键字的理解

[size=medium]synchronized关键字在线程中扮演的很重要的作用,对它的使用近来了解如下:1、synchronized作用于类范围。
synchronized static void theMethod(),这个方法所在的class作为锁,多个线程想要访问这这一方法,在一个方法获得锁,则其余的需要等待释放的锁。与其相同的还有同步区块,对一个区块的代码同步:static void thisMethod(){
synchronized(object){//要同步的代码}
}
2、synchronized作用于实例范围。
所谓实例范围理解中也就是class中非static的方法,例如synchronized void theMethod(){},这个方法的实例就成了锁,如果多个线程想调用同一实例的这个方法时,先得到锁的线程执行,其余的线程就进入就绪队列等待获得锁。但是如果有多个实例的话,多个实例的theMethod并不发生影响,这一点与类范围的不同,类范围情况下只允许有一个synchronized修饰的static方法运行。与其相同的用法还有同步区块。
3、synchronized关键字不允许继承,父类的方法sychonized void fun(){}在子类中被继承为了 void fun(){}。[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值