〖JAVE经验〗Java认证考试:SCJP考试中的线程题目分析

Java认证考试:SCJP考试中的线程题目分析

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

更多免费相关学习经验请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html

总结失败的原因能够让人越来越谨慎。

〖JAVE经验〗Java认证考试:SCJP考试中的线程题目分析

相关文章:

你感兴趣的文章:

标签云: