synchronized线程同步
synchronized有代码块方法,代码块里放的是共享的对象🔒,一个对象只有一个对象🔒,线程a与b的run方法如果同时调用这个含synchronized的方法,那么必然要有个先后次序。
如果线程不执行含synchronized的方法,而执行另外一个不含synchronized的方法,那么不必等待共享对象🔒,因为你执行的方法不需要🔒
如果线程a和b的run方法调用的是同一个静态方法,在一个静态方法上自动加了类🔒,只要你是这个类的对象,你都需要等待。
synchronized如果实在方法上写的,那么和代码块差不多,两个线程如果如果是同一个对象,调用同一个方法,那么这个线程的执行就有先后次序。