JAVA中线程同步的方法
第一个for?循环没有受synchronized?保护。对于第一个for?循环,t1,t2?可以同时访问。运行结果表明t1?执行到了k=2?时,t2?开始执行了。t1?首先执行完了第一个for?循环,此时t2还没有执行完第一个for?循环(t2?刚执行到k=2)。t1?开始执行第二个for?循环,当t1的第二个for?循环执行到k=1?时,t2?的第一个for?循环执行完了。t2?想开始执行第二个for?循环,但由于t1?首先执行了第二个for?循环,这个对象的锁标志自然在t1?手中(synchronized?方法的执行权也就落到了t1?手中),在t1?没执行完第二个for?循环的时候,它是不会释放锁标志的。所以t2?必须等到t1?执行完第二个for?循环后,它才可以执行第二个for?循环。