传统的Synchronized锁



第一步:创建一个资源类,我们真的去学习使用线程(就是用线程去使用一个资源)

第二步:我们在main中new出我们的资源类,和多线程。

第三步:线程如何去操纵资源类(将资源类丢入线程)
看上面的注解(函数式接口(接口是可以new的))

new出来的匿名内部类再用lambda表达式来简化

其中我们三个线程去操作这一个资源类的方法(并发:多线程操作一个资源)

所以这里这个资源类就是一个oop(面向对象)的思想,只有属性加方法。他没有任何事情,只是提供了东西。真正的实现是线程去操作这个资源。
第四步:就是去卖票了

多线程有问题:(多个线程争抢一个资源了)

传统解决思路:加Syn锁(我们去给资源类的方法加锁就ok了)本质是队列加锁(锁对象还可以锁Class)

