线程同步、线程同步跟Runnable的区别
线程同步:创建多条线程,要一条线程执行完run()方法,下一个线程才能进入run()方法,线程同步就是为了避免同一条件下不允许多条线程同时进入而制造出来的方法。
runnable跟同步的区别:runnable在同一条件下可以同时进入多条线程,而同步不行。
例子,售票台有ticket=100张票,每卖一张run(){ticket--;},当买到只剩一张时,这时线程在未执行ticket--;之前延迟,如果用runnable,就有可能其他线程也进入run(),造成卖出负数张票,而用同步一条线程执行完run()方法,下一个线程才能进入run()方法,就不会出现这种情况。