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

scjp的问题2道

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

    本文导语:  (1) 1. public class X implements Runnable(  2. private int x;  3. private int y;  4.    5. public static void main(String[]args)  6. X that = new X();  7. (new Thread(that)).start();  8. (new Thread(that)).start();  9. )  10.    11. public ...

(1)
1. public class X implements Runnable( 
2. private int x; 
3. private int y; 
4.   
5. public static void main(String[]args) 
6. X that = new X(); 
7. (new Thread(that)).start(); 
8. (new Thread(that)).start(); 
9. ) 
10.   
11. public void run()  ( 
12. for (; ( 
13. x++; 
14. y++; 
15. System.out.printIn(“x=” + x + “, y = ” + y); 
16.          ) 
17.       ) 
18.    )   

What is the result? 

A. Errors at lines 7 and 8 cause compilation to fail.
B. The program prints pairs of values for x and y that might not always be the same on the same line (for example, “x=2, y=1”).
C. The program prints pairs of values for x and y that are always the same on the same line (for example, “x=1, y=1”. In addition, each value appears twice (for example, “x=1, y=1” followed by “x=1, y=1”).
D. The program prints pairs of values for x and y that are always the same on the same line (for example, “x=1, y=1”. In addition, each value appears only for once (for example, “x=1, y=1” followed by “x=2, y=2”). 

(2)Given: 

1. public class SyncTest {
2. private int x;
3. private int y;
4. public synchronized void setX (int i) (x=1;)
5. public synchronized void setY (int i) (y=1;)
6. public synchronized void setXY(int 1)(set X(i); setY(i);)
7. public synchronized Boolean check() (return x !=y;)
8. ) 

Under which conditions will check () return true when called from a different class?   

A. check() can never return true
B. check() can return true when setXY is called by multiple threads
C. check() can return true when multiple threads call setX and setY separately. 
D. Check() can only return true if SyncTest is changed to allow x and y to be set separately. 

请解释一下synchronized ?谢谢。

|
(1)第一题我的答案是D
因为7、8句同时设置了线程的开始,但是有一个先后的次序。

(2)synchronized是将此方法设置为同步,即同一时刻只能由一个线程能够访问这个方法。这题我的答案是A和D。
不知道你的答案为何?大家交流一下。

|
A1 = B  
因为在多线程中,没有加锁的方法可以被打断。所以 x++; y++; 的当中可以被打断。因为有两个线程再运动,所以可能 T1 [ x++ ] 后是 T2 [ x++; y++; println(); ]  结果就会 x 比 y 大一了。

A2 = C
同意iamcyh(蓝色虾)对synchronized 的解释。但是当method 中只有一个操作的时候,如 public synchronized void setX (int i) (x=1;) 与 
public void setX (int i) (x=1;) 是一样的。所以当分别给 setX(), setY() 时会有 x!=y的现象。

|
1 d
2 a d

    
 
 

您可能感兴趣的文章:

  • —— SCJP认证相关问题 ——
  • SCJP问题?高手请进!
  • 不知谁可以告诉我,scjp认证的有关问题?
  • 关于SCJP考试(非技术问题)
  • 关于SCJP考试的问题
  • 问个关于SCJP考试的问题。
  • 一个关于SCJP1。4的问题,我吃饭回来就给分。
  • 想考scjp,请教几个问题。。。。。。。。。。。。。。。
  • [scjp问题] 关于静态方法中间的变量调用错误问题
  • 请教scjp中的问题
  • scjp问题.帮忙
  • 比较基础但很重要的问题!急谢谢因为最近就要考SCJP了!
  • SCJP垃圾收集的问题....
  • 关于SCJP考试(非技术问题),再次散分
  • 关于SCJP1.4认证的几个问题
  • scjp问题
  • scjp简单问题,立即结帐!!!!
  • 问个我自己都感到弱智的问题,是一道SCJP的题
  • scjp问题,关于类型转换。
  • scjp真题的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 小弟想考scjp,贡献一些scjp考试的网址?
  • 我一个伙计考过SCJP一个多月了,怎么SCJP的证书还没有来呀?到哪里问去呀?
  • 过了SCJP和没过SCJP的都请进来,谢谢!
  • 我一直搞不清什么sl275与scjp1.2,scjp1.4的关系?那位能说说么
  • [提议] 既然考scjp的人这么对,提议设立scjp专栏,响应的进来领分!
  • 英文不是很好,为了考SCJP,好多地方看英文书,概念什么的比较模糊,哪有详细的中文的Java语言教程呀?最好和SCJP想符合的,别告诉我《Think in Java》呀!那本书我烦透了!
  • 检验你的SCJP能力!!!来自SUN的SCJP题库中的一道经典线程题目,你能做出正确的答案吗???
  • 谁有scjp练习题,越新越好?谢了
  • 在考SCJP中,很多人说的104和147指的是什么? iis7站长之家
  • 50分求助:哪儿能搞到SCJP的教程资料与试题资料!!!!!
  • 请推荐一些SCJP认证书籍和其他资料
  • 求助!本人下个星期考SCJP急需好的题库!高分求教!
  • 谁能告诉我SCJP考题的网址吗?
  • SCJP
  • 请问scjp/scjd和高程比,哪个分量重些啊?
  • *考过scjp的给个意见*
  • 在考SCJP中,很多人说的104和147指的是什么?
  • 通过了SCJP认证以后,还能干什么?
  • 寻找scjp认证考试方面的资料,培训资料和试题,谢谢!
  • 有近期过SCJP的朋友么?请进来.........


  • 站内导航:


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

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

    浙ICP备11055608号-3