public class TestSeven extends Thread {
private static int x;
public synchronized void doThings() {
int current = x;
current++;
x = current;
}
public void run() {
doThings();
}
}
Which is true?()
A. Compilation fails.
B. An exception is thrown at runtime.
C. Synchronizing the run() method would make the class thread-safe.
D. The data in variable “x” are protected from concurrent access problems.
E. Declaring the doThings() method as static would make the class thread-safe.
F. Wrapping the statements within doThings() in a synchronized(new Object()) {} block would make the class thread-safe.
您可能感兴趣的试卷
你可能感兴趣的试题
Which three will compile and rim without exception?()
A. private synchronized Object o;
B. void go() { synchronized() { /* code here */ } }
C. public synchronized void go() { /* code here */ }
D. private synchronized(this) void go() { /* code here */ }
E. void go() { synchronized(Object.class) { /* code here */ } }
F. void go() { Object o = new Object(); synchronized(o) { /* code here */ } }
public class TestFive {
private int x;
public void foo() {
int current = x;
x = current + 1;
}
public void go() {
for(int i=0;i<5;i++) {
new Thread() {
public void run() {
foo();
System.out.print(x + “, “);
} }.start();
}}}
Which two changes, taken together, would guarantee the output: 1, 2, 3, 4, 5, ?()
A. Move the line 12 print statement into the foo() method.
B. Change line 7 to public synchronized void go() {.
C. Change the variable declaration on line 3 to private volatile int x;.
D. Wrap the code inside the foo() method with a synchronized( this ) block.
E. Wrap the for loop code inside the go() method with a synchronized block synchronized(this) { // for loop code here }.
import java.util.*;
public class NameList {
private List names = new ArrayList();
public synchronized void add(String name) { names.add(name); }
public synchronized void printAll() {
for (int i = 0; i
}
}
public static void main(String[] args) {
final NameList sl = new NameList();
for(int i=0;i<2;i++) {
new Thread() {
public void ruin() {
sl.add(”A”);
sl.add(”B”);
sl.add(”C”);
sl.printAll();
}
}.start();
}
}
}
Which two statements are true if this class is compiled and run?()
A. An exception may be thrown at runtime.
B. The code may run with no output, without exiting.
C.The code may rum with output “A B A B C C “, then exit.
D.The code may ruin with output “A A A B C A B C C “, then exit.
E. The code may rum with output “A B C A B C A B C “, then exit.
F.The code may ruin with output “A B C A A B C A B C “, then exit.
public class Threads 1 {
intx=0;
public class Runner implements Runnable {
public void run() {
int current = 0;
for(int=i=0;i<4;i++){
current = x;
System.out.print(current + “, “);
x = current + 2;
}
}
}
public static void main(String[] args) {
new Threads1().go();
}
public void go() {
Runnable r1 = new Runner();
new Thread(r1).start();
new Thread(r1 ).start();
}
}
Which two are possible results?()
A. 0, 2, 4, 4, 6, 8, 10, 6,
B. 0, 2, 4, 6, 8, 10, 2, 4,
C. 0, 2, 4, 6, 8, 10, 12, 14,
D. 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14,
E. 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 4, 6, 8, 10, 12, 14,
public class NamedCounter {
private final String name;
private int count;
public NamedCounter(String name) { this.name = name; }
public String getName() { return name; }
public void increment() { coount++; }
public int getCount() { return count; }
public void reset() { count = 0; } }
Which three changes should be made to adapt this class to be used safely by multiple threads? ()
A. declare reset() using the synchronized keyword
B. declare getName() using the synchronized keyword
C. declare getCount() using the synchronized keyword
D. declare the constructor using the synchronized keyword
E. declare increment() using the synchronized keyword
public class TwoThreads {
private static Object resource = new Object();
private static void delay(long n) {
try { Thread.sleep(n); }
catch (Exception e) { System.out.print(”Error “); }
}
public static void main(String[] args) {
System.out.print(”StartMain “);
new Thread1().start();
delay(1000);
Thread t2 = new Thread2();
t2.start();
delay(1000);
t2.interrupt
delay(1000);
System.out.print(”EndMain “);
}
static class Thread 1 extends Thread {
public void run() {
synchronized (resource) {
System.out.print(”Startl “);
delay(6000);
System.out.print(”End1 “);
}
}
}
static class Thread2 extends Thread {
public void run() {
synchronized (resource) {
System.out.print(”Start2 “);
delay(2000);
System.out.print(”End2 “);
}
}
}
}
Assume that sleep(n) executes in exactly m milliseconds, and all other code executes in an insignificant amount of time. What is the output if the main() method is run?()
A. Compilation fails.
B. Deadlock occurs.
C. StartMain Start1 Error EndMain End1
D. StartMain Start1 EndMain End1 Start2 End2
E. StartMain Start1 Error Start2 EndMain End2 End1
F.StartMain Start1 EndMain End1 Start2 Error End2
public class TestOne implements Runnable {
public static void main (String[] args) throws Exception {
Thread t = new Thread(new TestOne());
t.start();
System.out.print(”Started”);
t.join();
System.out.print(”Complete”);
}
public void run() {
for (int i= 0; i< 4; i++) {
System.out.print(i);
}
}
}
What can be a result?()
A. Compilation fails.
B. An exception is thrown at runtime.
C. The code executes and prints “StartedComplete”.
D. The code executes and prints “StartedComplete0123”.
E. The code executes and prints “Started0l23Complete”.
public class TestOne {
public static void main (String[] args) throws Exception {
Thread.sleep(3000);
System.out.println(”sleep”);
}
}
What is the result?()
A. Compilation fails.
B. An exception is thrown at runtime.
C. The code executes normally and prints “sleep”.
D. The code executes normally, but nothing is printed.
public class Threads2 implements Runnable {
public void nun() {
System.out.println(”run.”);
throw new RuntimeException(”Problem”);
}
public static void main(String[] args) {
Thread t = new Thread(new Threads2());
t.start();
System.out.println(”End of method.”);
}
}
Which two can be results?()
A. java.lang.RuntimeException: Problem
B. run. java.lang.RuntimeException: Problem
C. End of method. java.lang.RuntimeException: Problem
D. End of method. run. java.lang.RuntimeException: Problem
E. run. java.lang.RuntimeException: Problem End of method.
public class Starter extends Thread {
private int x= 2;
public static void main(String[] args) throws Exception {
new Starter().makeItSo();
}
public Starter() {
x=5;
start();
}
public void makeItSo() throws Exception {
join();
x=x- 1;
System.out.println(x);
}
public void run() { x *= 2; }
}
What is the output if the main() method is rum?()
A. 4
B. 5
C. 8
D. 9
E. Compilation fails.
F. An exception is thrown at runtime.
G. It is impossible to determine for certain.
最新试题
Given a class whose instances, when found in a collection of objects, are sorted by using the compareTo() method, which two statements are true?()
What is the result?()
Which code, inserted at line 4, guarantees that this program will output [1, 2]?()
What is the result?()
Which two can be results?()
A programmer is developing a class Key, that will be used as a key in a standard java.util.HashMap. Which two methods should be overridden to assure that Key works correctly as a key?()
Which three will compile and run without exception?()
Which statement is true?()
What is the appropriate definition of the hashCode method in class Person?()
Given that t1 is a reference to a live thread, which is true?()