java学习笔记之线程5

今天给大家说说线程中的类锁

先上一段代码:
这里写图片描述

上面程序的大概意思是:
在MyClass中有一个成员方法m1,当执行线程为t1时,让它去存10元钱,当执行线程是t2时,让它去取十元钱,假设m是一个银行账户,t1,t2共享这个账户

多次执行结果如下:
这里写图片描述


这里写图片描述


这里写图片描述


如图:在这个程序中涉及到了并发时的数据安全问题,尽管偶尔出现正常的情况,但这种结果不是我们想要的!
上面的情况就和生活情境矛盾了,卡里的钱怎么还会是负呢!!!
我们生活中真实的情况是:卡里有钱才能取出钱来
先给大家说说这个类锁:和对象锁有什么区别呢??没区别!类加载器在加载class文件的时候会创建一个class对象,class对象这个锁就是类锁,有一点不同的就是这个类对象只有一个,而其他对象有多个,当然除开什么单例模式

这时候我们上类锁再看看结果:

这里写图片描述

这里写图片描述


大家看到,类锁的语法其实和对象锁差不多,只不过我们锁的是类对象
看看执行结果是怎样的呢:

以上结果是多次执行的结果,是不是这个结果才符合常理呢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值