juc并发07锁的八种情况

6 篇文章 1 订阅

8种锁:

  • 1.标准访问,先打印短信还是邮件
  • 2.停留4秒在短信方法内,先打印短信还是邮件
  • 3.新增普通的hello方法,先是打短信还是hello
  • 4.现在有两部手机,先打印短信还是邮件
  • 5.两个静态同步方法,1部手机,先打印短信还是邮件
  • 6.两个静态同步方法,2部手机,先打印短信还是邮件
  • 7.1个静态同步方法,1个普通同步方法,1部手机,先打印短信还是邮件
  • 8.1个静态同步方法,1个普通同步方法,2部手机,先打印短信还是邮件

一、标准访问,先打印短信还是邮件
资源类
在这里插入图片描述
创建线程操作方法
在这里插入图片描述
结果,因为当前锁的是当前的phone对象,所以按照顺序按先打印短信后打印邮件
在这里插入图片描述
二、停留4秒在短信方法内,先打印短信还是邮件
在这里插入图片描述
在这里插入图片描述
结果是等待了4秒,因为当前锁的还是当前的phone对象
在这里插入图片描述
三、新增普通的hello方法,先是打短信还是hello
在这里插入图片描述
在这里插入图片描述
结果是先输出了普通方法hello,然后等待了4秒输出了SMS
在这里插入图片描述
四、现在有两部手机,先打印短信还是邮件
在这里插入图片描述
在这里插入图片描述
结果是EMAIL先输出,SMS等待了4秒在进行输出,因为当前锁的对象不同一个是phone对象一个是phone2对象
在这里插入图片描述
五、两个静态同步方法,1部手机,先打印短信还是邮件
在这里插入图片描述
在这里插入图片描述
结果,由于加上了static所以当前锁的是Class对象(类对象)也就是字节码对象,属于同一个大的对象,所以同步执行
在这里插入图片描述
六、两个静态同步方法,2部手机,先打印短信还是邮件
在这里插入图片描述
在这里插入图片描述
结果,由于加上了static所以当前锁的是Class对象(类对象)也就是字节码对象,属于同一个大的对象,所以同步执行
在这里插入图片描述
七、1个静态同步方法,1个普通同步方法,1部手机,先打印短信还是邮件
在这里插入图片描述
在这里插入图片描述
结果,sms锁的是字节码对象,一个锁的是当前对象,因此锁的不是同一把锁
在这里插入图片描述
八、1个静态同步方法,1个普通同步方法,2部手机,先打印短信还是邮件
在这里插入图片描述
在这里插入图片描述
结果,SMS锁的是字节码对象,EMAIL锁的是当前对象,因此锁的不是同一把锁
在这里插入图片描述
总结
1.普通同步方法,锁的是当前实例对象
2静态同步方法,锁的是类Class对象
3.同步方法块,锁的是synchronized括号里配置的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值