这里会出现一个问题。
0线程,判断之后进入阻塞状态,不执行。1线程进入判断状态,num=1大于0满足条件,也不执行,进入阻塞状态,以此类推。
又切换到0线程执行代码。卖出1号票,num–,然后执行1线程,这时候不用判断,之前已经判断过了。卖0号票,num–。2线程卖-1号票。而票的编号是从1~100。所以此处出现bug。
同步代码块也相当于同步锁。当0号线程进来后,obj自动置为0,这时候其他线程想要进来犹豫没有obj,所以无法进来,当0号线程出去后,obj由变为1,其他线程可以根据切换的顺序进来。