f-start---------------
f_end>>>>>>>>>>>>>>>>
f-start---------------
f_end>>>>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
f-start---------------
f_end>>>>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
f-start---------------
f_end>>>>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
g-start-----------
g_end>>>>>>>>>>>>>
三、总结
1,每个对象都有一个锁,基本类型数据不能用来同步
2,谈到同步,首先要明确是在哪个对象上同步,只有两个线程在同一个对象上同步时,同步才会起效果
3,Class锁和类实例锁是不一样的,static被加锁时,如果非static方法不是在Class上同步,则其他没有获取Class锁的线程仍可以访问该方法。