文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院认证考试Java认证SCJP考试中的线程题目分析
精品广告
推荐TOP10
·通过Java认证 SCJP 考试之精辟总结
·Java认证心得:顺利通过SCJP测试全接触
·JAVA认证培训辅导:随机整数的生成
·Java连接各种数据库的实例
阅读TOP10
·在Java中读写Excel文件
·Java语言特点及开发工具JDK
·Java认证心得:顺利通过SCJP测试全接触
·课程介绍(6)SL-285 高级Java编程工具包
·课程介绍(1)SL-110 初级Java语言编程
·JAVA认证考试价格及认证证书
·JAVA考试认证:SCJP310-035考试心得
·通过Java认证 SCJP 考试之精辟总结
·JAVA认证培训辅导:随机整数的生成
·课程介绍(12)SL-330 Java开发数据库应用程序

SCJP考试中的线程题目分析

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]



  1:
  Which two CANNOT directly cause a thread to stop executing? (Choose Two)
  
  A.Existing from a synchronized block
  B.Calling the wait method on an object
  C.Calling notify method on an object
  D.Calling read method on an InputStream object
  E.Calling the SetPriority method on a Thread object
  Answer:AC。同55题
  
  2:
   public class SyncTest{
   public static void main(String[] args) {
   final StringBuffer s1= new StringBuffer();
   final StringBuffer s2= new StringBuffer();
   new Thread ()  {
    public void run() {
     synchronized(s1) {
       s2.append(“A”);
       synchronized(s2) {
    s2.append(“B”);
     System.out.print(s1);
      System.out.print(s2);
     }
     }
    } 
   }.start();
   new Thread() {
    public void run() {
     synchronized(s2) {
      s2.append(“C”);
      synchronized(s1) {
      s1.append(“D”);
       System.out.print(s2);
       System.out.print(s1);
      }
     }
     }
    }.start();
    }
   }
  Which two statements are true? (Choose Two)
  A. The program prints “ABBCAD”
  B. The program prints “CDDACB”
  C. The program prints “ADCBADBC”
  D. The output is a non-deterministic point because of a possible deadlock condition
  E. The output is dependent on the threading model of the system the program is running on.
  Answer:DE
  
  3:
  What will happen when you attempt to compile and run the following code?
  public class Test{ 
    int i = 0; 
    public static void main(String argv[]) {   
   Test t = new Test();   
   t.myMethod(); 
    } 
    public void myMethod(){   
   while(true) {     
   try {        
      wait();     
   }catch (InterruptedException e) {}     
   i++;   
   } 
    }
  }
  A. Compile time error, no matching notify within the method.
  B. Compile and run but an infinite looping of the while method.
  C. Compilation and run without any output.
  E. Runtime Exception "IllegalMonitorStatException".
  Answer: E
  Note: The wait/notify protocol can only be used within code that is synchronized. In this case calling code does not have a lock on the object(not synchronized) and will thus cause an Exception at runtime.
  
  4:
  1.10 What is the result of compiling and executing the following code?
  public class ThreadTest extends Thread { 
   public void run() {   
   System.out.println("In run");   
   yield();  
   System.out.println("Leaving run"); 
   } 
   public static void main(String args []) { 
   (new ThreadTest()).start(); 
   }
  }
  A. The code fails to compile in the main() method.
  B. The code fails to compile in the run() method.
  C. Only the text "In run" will be displayed.
  D. The text "In run" followed by "Leaving run" will be displayed.
  E. The code compiles correctly, but nothing is displayed.
  Answer: D
  
  5:
  1.12 Which of the following will definitely stop a thread from executing?A. wait()B. notify()C. yield()D. suspend()E. sleep()Answer: ACDE
  
  6:
  1.12 Which of the following will definitely stop a thread from executing?
  A. wait()
  B. notify()
  C. yield()
  D. suspend()
  E. sleep()
  Answer: ACDE
  
  7:
   Which of the following statements about threading are true?
  A. You can only obtain a mutually exclusive lock on methods in a class that extends Thread or implements runnable.
  B. You can obtain a mutually exclusive lock on any object.
  C. You can't obtain a mutually exclusive lock on any object.
  D. Thread scheduling algorithms are platform dependent.
  Answer: BD
  8:
  Consider the following statement: 
  Thread myThread = new Thread();
  Which of the following statements are true regarding myThread?
  A. The thread myThread is now in a runnable state.
  B. The thread myThread has a priority of 5.
  C. On calling the start() method on myThread, the run method in the Thread class will be executed.
  D. On calling the start() method on myThread, the run method in the calling class will be executed.
  Answer: C
  Note: the priority of myThread will be inherited from the Thread that called the constructor.
  9:
  What is the effect of issuing a wait() method on an object?(Mutiple)
  1) If a notify() method has already been sent to that object then it has no effect
  2) The object issuing the call to wait() will halt until another object sends a notify() or notifyAll() method
  3) An exception will be raised
  4) The object issuing the call to wait() will be automatically synchronized with any other objects using the receiving object.
  ANSWER 1)
  10:
  Pick all the true statements below.
  1) If a thread wants to call wait() on an object, the thread must own that object's lock.
  2) There is a method that you can call on an instance of the Thread class that puts the instance to sleep for a specified  number of milliseconds.
  3) At the moment when a thread is notified, it automatically gets the lock of the object for which it was waiting.
  ANSWER 1
  
  11:
  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".
  ANS: 2)
  12:
   What will happen when you attempt to compile and run the following code?
  class MyThread extends Thread{
   public void run(){
   System.out.println("MyThread: run()");
   }
   public void start(){////注意,此方法重写后,不再有CALL RUN()方法的功能。
   System.out.println("MyThread: start()");
   }
  }
  class MyRunnable implements Runnable{
   public void run(){
   System.out.println("MyRunnable: run()");
   }
   public void start(){//Runnable 并无此方法,所以,除非本类的对象可以CALL 它,否则,将CALL THREAD 的start()执行run()
   System.out.println("MyRunnable: start()");
   }
  }
  public class MyTest {
   public static void main(String args[]){
   MyThread myThread = new MyThread();
   MyRunnable myRunnable = new MyRunnable();
   Thread thread = new Thread(myRunnable);
   myThread.start();
   thread.start();
   }
  }
  A.prints: MyThread: start() followed by MyRunnable: run()
  B.prints: MyThread: run() followed by MyRunnable: start()
  C.prints: MyThread: start() follow
[1] [2] 下一页 

上一篇:Sun公司SCWCD考试版本更新

下一篇:SCJP1.4高效率复习提纲


相关软件: 相关文章:
·SCJP考试中的线程题目分析

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号