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

先上一段代码:
java学习笔记之线程5

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

多次执行结果如下:
java学习笔记之线程5


java学习笔记之线程5


java学习笔记之线程5


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

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

java学习笔记之线程5

java学习笔记之线程5


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

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

相关文章:

  • 2022-12-23
  • 2021-12-29
  • 2021-04-03
  • 2021-06-01
  • 2021-08-26
  • 2021-11-23
  • 2021-08-09
  • 2022-12-23
猜你喜欢
  • 2021-10-19
  • 2021-04-22
  • 2021-10-31
  • 2021-09-26
  • 2021-07-31
  • 2021-09-20
相关资源
相似解决方案