; ; Output created by JasminView on Jun 25, 2000 ; mailto:shawn@pobox.com ; Copyright (c) 1997-Present Shawn Silverman ; ; Jasmin can be found at: ; http://www.cat.nyu.edu/meyer/jasmin/ ; ; Classfile version: ; major: 45 ; minor: 3 .source CoThread.java .class CoThread .super java/lang/Thread .field private w LWaiting; .field private id I .field private c LCounter; ; >> METHOD 1 << .method <init>(ILCounter;)V .limit stack 3 .limit locals 3 ;---- .line 8 aload_0 invokespecial java/lang/Thread/<init>()V .line 9 aload_0 new Waiting dup invokespecial Waiting/<init>()V putfield CoThread/w LWaiting; .line 10 aload_0 iload_1 putfield CoThread/id I .line 11 aload_0 aload_2 putfield CoThread/c LCounter; .line 7 return .end method ; >> METHOD 2 << .method public run()V .limit stack 4 .limit locals 5 ;---- .line 15 iconst_0 istore_1 goto Label6 .line 16 Label1: aload_0 getfield CoThread/w LWaiting; aload_0 invokevirtual Waiting/wait(Ljava/lang/Thread;)V .line 17 getstatic java/lang/System/out Ljava/io/PrintStream; new java/lang/StringBuffer dup aload_0 getfield CoThread/id I invokestatic java/lang/String/valueOf(I)Ljava/lang/String; invokespecial java/lang/StringBuffer/<init>(Ljava/lang/String;)V ldc " " invokevirtual java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer; invokevirtual java/lang/StringBuffer/toString()Ljava/lang/String; invokevirtual java/io/PrintStream/print(Ljava/lang/String;)V .line 18 aload_0 getfield CoThread/c LCounter; astore_2 aload_2 monitorenter .line 19 Label2: aload_0 getfield CoThread/c LCounter; invokevirtual Counter/get()I istore 4 .line 20 aload_0 getfield CoThread/w LWaiting; aload_0 invokevirtual Waiting/wait(Ljava/lang/Thread;)V .line 21 aload_0 getfield CoThread/c LCounter; iload 4 iconst_1 iadd invokevirtual Counter/set(I)V .line 18 Label3: aload_2 monitorexit goto Label5 Label4: aload_2 monitorexit athrow .line 15 Label5: iinc 1 1 Label6: iload_1 bipush 10 if_icmplt Label1 .line 24 aload_0 getfield CoThread/c LCounter; invokevirtual Counter/show()V .line 14 return ;---- .catch all from Label2 to Label3 using Label4 .end method ; >> METHOD 3 << .method public static main([Ljava/lang/String;)V .limit stack 4 .limit locals 3 ;---- .line 28 new Counter dup invokespecial Counter/<init>()V astore_1 .line 30 new CoThread dup iconst_0 aload_1 invokespecial CoThread/<init>(ILCounter;)V astore_2 aload_2 invokevirtual java/lang/Thread/start()V .line 31 new CoThread dup iconst_1 aload_1 invokespecial CoThread/<init>(ILCounter;)V astore_2 aload_2 invokevirtual java/lang/Thread/start()V .line 32 new CoThread dup iconst_2 aload_1 invokespecial CoThread/<init>(ILCounter;)V astore_2 aload_2 invokevirtual java/lang/Thread/start()V .line 27 return .end method
$Id: jas.html,v 1.1 2000-06-25 23:28:56+09 kaiya Exp kaiya $