首先创建锁对象
Object obj = new Object();
将锁对象放入锁方法中中去
synchronized (obj){
System.out.println(name + "正在卖" + paper.remove(i++) + "号票");
}
当多个线程同时执行时
先拿到锁对象的线程可以进入同步代码块中去执行代码
没有抢到锁对象的线程则阻塞停止。
.
当一个线程运行完毕之后,归还锁对象
下一个下称抢到则运行
.
这样做的好处是保证了线程的安全
不会出现重复执行以及数据溢出等情况
但是会降低代码效率