不会吧,java里的锁是可重入的,难道不同jvm不一样??不可能。
解决方案 »
- 面试题排序
- com.sybase.jdbc3.utils.UnimplementedOperationException
- JTable 问题 不解?????? 急 !!
- 请问java中要使应用程序在桌面托盘区显示应该怎么做
- 郁闷的工厂模式
- 有没有像jbuilder中tcpip moniter的软件,可以监听端口,察看交互的数据?
- 求助一个Java操作excel的问题~~
- 唉,如何引用package呢?
- 一个奇怪的JAVA中文问题!请各位大虾指明!!!
- 为什么我写的程序在xp下是乱码呢???
- 所有的jvm都是通用的吗?
- 微軟的sql server jdbc驅動居然不能識別sql server 2000的real類型
(1) synchronized(t) {
(2) synchronized(t) {
System.out.println("made it!");
}
}
如果一个单线程不允许被锁多次,或者说只允许锁一次,那么(1)处加锁第一次后,(2)处的加锁只能等待(1)处解锁后才能再次加锁。而(1)处解锁是它的{...}执行完毕,若要(1)处加锁的{...}执行完毕,则必须执行(2)处的加锁。这样的话,(2)等待(1),(1)等待(2),就产生了死锁
俺E文也不好,但是意思还是能够看明白:This example would deadlock if a single thread were not permitted to lock a lock more than once。
如果不允许一个线程重入同步锁,那么上面的例子就会发生死锁.
既然java的的同步锁对一个线程是可以重入的
哪究竟什么情况下这个假设句会成立从而产生死锁啊?
就是在解释这样不死锁!无论哪个虚拟机,你去运行这个例子,都不会死锁!
应该就是xiaohaiz(老土进城,两眼通红) 翻译的这个意思