CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  SUN Java 认证

帮忙解释一下这道题的执行过程(同步问题)

楼主wk0210(wk0210)2004-09-03 10:46:05 在 Java / SUN Java 认证 提问

1.   class   Z   {  
    2.       public   static   void   main(String[]   args)   {  
    3.           new   Z();  
    4.       }  
    5.  
    6.       Z()   {  
    7.           Z   alias1   =   this;  
    8.           Z   alias2   =   this;  
    9.           synchronized(alias1)   {  
  10.               try   {  
  11.                   alias2.wait();  
  12.                   System.out.println("DONE   WAITING");  
  13.               }  
  14.               catch   (InterruptedException   e)   {  
  15.                   System.out.println("INTERRUPTED");  
  16.               }  
  17.               catch   (Exception   e)   {  
  18.                   System.out.println("OTHER   EXCEPTION");  
  19.               }  
  20.               finally   {  
  21.                   System.out.println("FINALLY");  
  22.               }  
  23.           }  
  24.           System.out.println("ALL   DONE");  
  25.       }  
  26.   }  
  Mutiple:    
  1)   Compiler   error.  
  2)   The   application   compiles   but   doesn't   print   anything.      
  3)   The   application   prints   "DONE   WAITING".  
  4)   The   application   prints   "INTERRUPTED".  
  5)   The   application   prints   "OTHER   EXCEPTION".  
   
  answer:2  
  问题点数:20、回复次数:4Top

1 楼zhouwj(阿杰)回复于 2004-09-03 11:40:32 得分 10

先将alias1和alias2处都替换this。  
  synchronized(this):将线程(1)锁住。  
  this.wait():让线程(1)等待。  
  因此JVM的进程就没有让线程(1)再执行下去了。直到线程(n)notify()线程(1)为止Top

2 楼wk0210(wk0210)回复于 2004-09-03 13:25:24 得分 0

哦,大概明白了。可理解的还不是很深刻。线程同步这块总感觉不太明白。Top

3 楼liweigu(liweigu)回复于 2004-09-03 13:28:49 得分 0

Z要从Thread继承吧Top

4 楼xyxu1982(云娜)回复于 2004-09-03 15:52:43 得分 10

自始至终都只有一个线程,你在11行无论是wait(),alias1.wait(),还是alias2.wait()都将使程序停止运行。程序会从main方法开始运行(也就是所谓的主线程),这时只有一个线程除非有new   Thread()代码,也只有new   Thread()会产生一个新的线程。  
  to   wk0210(wk0210):  
                  建议你以后问问题不要先给出答案或者给错的答案,要不然有些人会照着答案乱解释误导你。还有你那个overriding问题答案真的有3个。Top

相关问题

  • ASP执行同步的问题?
  • 关于进程同步执行的问题
  • 关于消息的执行同步问题
  • 请教高手:两个线程代码执行时的同步问题!
  • 同步问题
  • 同步问题
  • 同步问题
  • 讨论一下C语言的解释执行问题
  • shell 同步问题
  • 同步的问题

关键词

  • 线程
  • application
  • alias
  • wait
  • 答案
  • println
  • prints
  • exception

得分解答快速导航

  • 帖主:wk0210
  • zhouwj
  • xyxu1982

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo