当前位置:  技术问答>java相关

昨天参加SCJP中遇到的一题

    来源: 互联网  发布时间:2015-02-07

    本文导语:  题目程序: public class Test {     private int x;     private int y;     private synchronized void setX(int i){         x = i;     }     private synchronized void setY(int i){         y = i;     }     public voi...

题目程序:

public class Test {

    private int x;
    private int y;

    private synchronized void setX(int i){
        x = i;
    }

    private synchronized void setY(int i){
        y = i;
    }

    public void setXY(int i){
        setX(i);
        setY(i);
    }

    public synchronized boolean check(){
        return x != y;
    }
}
问:
什么情况下调用check()会返回true?

选项记不清了,大概有
永远不会
用多线程调用check()方法

我不太明白,请大家讨论讨论这道题

|
public void setXY(int i)没有同步,所以就当多个线程同时访问的时候就有可能出现X和Y的值不一致的情况……比如第一个线程把X设为1后进入休眠,然后第二个线程把X和Y都设为2,然后第一个线程退出休眠,把Y设为1……

明白了吗?

|
应该是多线程同时调用setXY()时会有可能出现x!=y的情况,我考试时也碰到了这个题目,一模一样的,原因就是ender说的了,反正我做对了,因为我的thread部分是满分(我有6个满分,哈!)

|
用多线程调用check()方法。
在多线程程序中如果多个线程共享相同的对象,且每一个线程都调用了能改变它状态的方法,按照对象被访问次序的不同,会产生不同的不可靠对象,即不确定性。本题的check()方法没有使用同步化机制(synchronized),当一个线程在执行check()方法的某步时就有可能被中断使得 x 、 y的值不确定。


|
用多线程调用check()方法

|
这道题的提问部分是否应为:
在调用了setXY(i)后,什么情况下调用check()会返回true?
否则我对以上各位的解释非常非常的不懂
如果没有“在调用了setXY(i)后”这个条件,还请各位在详细解释解释

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问哪位参加过JAVA认证考试,是否有例题?
  • 散分(前20位)——参加开心辞典
  • *调查* 有人要参加“CJEA之struts技术交流研讨会”吗?
  • 有人参加了IBM软件巡展吗?关于WebSphere的课怎么样?
  • 如何报名参加java的认证考试,我现在在无锡.
  • 请问可不可以不参加培训直接去考试
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • IBM DW大会有人参加吗?
  • 欢迎参加!
  • 自己在家学习技术语言好,还是多参加项目实践中学习好?
  • 欢迎个路英雄豪杰来参加讨论
  • 参加过昨天在自动化大厦进行ubuntu 大会的进来
  • 各位大大们 如何参加fedora开源项目 能说说具体的步骤吗?
  • 各位考过JAVA认证的朋友能不能给点建议?需要去参加培训么?
  • 刚毕业参加工作(系统管理和维护),请教学习的经验!!
  • 大家讨论一下用ant的好处吧。参加者有分
  • 参加Oracle认证的两种考试方式
  • ##############关于怎样考试,参加什么样的考试,各为什么要考试的问题?(300分献上,分三张贴子)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ##############关于怎样考试,参加什么样的考试,各为什么要考试的问题?(300分献上,分三张贴子)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ##############关于怎样考试,参加什么样的考试,各为什么要考试的问题?(300分献上,分三张贴子)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3