1.假定使用场景,100台手机抢购手机
a.设置线程任务,模拟抢购手机(sleep方法是为了提高线程安全出现概率)
b.启动多个线程
c.查看控制台打印会发现,有重复销售统一部手机的情况出现,这时候就出现了线程安全问题
2.如何解决线程安全问题
a.创建锁对象,锁住同步代码块,只让一个线程在同步代码块中执行
b.使用线程同步方法,将需要同步的代码块封装成同步方法,同步方法的锁对象也就是实现类对象new RunnableImpl。
c.使用lock锁
最终控制台输出,不存在重复销售和销售不存在的手机