java clinit 死锁
2016-03-10 16:05
260 查看
public class StaticInit { public static void main(String[] arg) { Thread th1 = new Thread(new Runnable() { public void run() { System.out.println(B.bStr); } }, "call-bStr"); Thread th2 = new Thread(new Runnable() { public void run() { System.out.println(C.cStr); } }, "call-cStr"); th1.start(); th2.start(); } } class B { static { try { System.out.println("Binit start"); Thread.sleep(1000); } catch (InterruptedException ex) { } System.out.println("b->cStr " + C.cStr); } static String bStr = "bStr"; } class C { static { try { System.out.println("Cinit start"); Thread.sleep(1000); } catch (InterruptedException ex) { } System.out.println("c->b.bStr " + B.bStr); } static String cStr = "cStr"; }
"call-cStr" prio=6 tid=0x0257cc00 nid=0x18a4 in Object.wait() [0x04c3f000] java.lang.Thread.State: RUNNABLE at C.<clinit>(StaticInit.java:40) at StaticInit$2.run(StaticInit.java:13) at java.lang.Thread.run(Thread.java:662) "call-bStr" prio=6 tid=0x0257a400 nid=0x1ddc in Object.wait() [0x04baf000] java.lang.Thread.State: RUNNABLE at B.<clinit>(StaticInit.java:28) at StaticInit$1.run(StaticInit.java:7) at java.lang.Thread.run(Thread.java:662)
相关文章推荐
- java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/Strin
- java 多线程下载图片
- java json lib 日期
- java cas
- 你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- Eclipse快捷键 10个最有用的快捷键
- java.lang.UnsupportedOperationException
- java class修改
- 深入理解Java虚拟机笔记---方法调用
- Java 代理使用及代理原理
- java 协程 实现 Akka
- java 远程通讯之 rmi
- Java远程通讯可选技术及原理
- Java中参数传递是值传递,还是引用传递
- spring 注解 extends
- JAVA并发编程实践笔记
- java 汉字按照拼音排序
- java Gearman helloword
- java.lang.OutOfMemoryError:GC overhead limit exceeded
- Java URL协议扩展实现