摘要: 我在学习synchronized的时候,十分好奇当一个线程进入了一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 然后就做了个实验(实验代码最后贴出),最后得到了如下结论。 现在分两种情况来讨论:1.当前线程调用的是synchronized普通方法(相对于stati 阅读全文
posted @ 2014-03-12 10:29 苍枫露雨 阅读(1194) 评论(0) 推荐(0) 编辑
摘要: sleep()是Thread的方法,wait()是Object的方法如果线程进入了同步锁,sleep不会释放对象锁,wait会释放对象锁sleep的作用就是让正在执行的线程主动让出CPU,给其它线程获得CPU的机会,在sleep指定的时间之后,CPU才会回到这个线程上继续往下执行,当线程进入了同步锁时,当别的线程也需要被加锁的资源时,sleep方法即使让出了CPU,别的线程也无法执行,因为无法获得锁。wait方法是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁给别的线程用,只有等其他线程调用了notify或notifyAll方法后,才能去获得同步锁继续执行,需要注意的是,notify并 阅读全文
posted @ 2014-03-11 00:07 苍枫露雨 阅读(777) 评论(0) 推荐(0) 编辑