adplus-dvertising
frame-decoration

Question

What will be the output of the program?
Note: Assuming that data must be protected from corruption, what—if anything—can you add to the preceding code to ensure the integrity of data?

public class SyncTest 
{
    public static void main (String [] args) 
    {
        Thread t = new Thread() 
        {
            Foo f = new Foo();
            public void run() 
            {
                f.increase(20);
            }
        };
    t.start();
    }
}
class Foo 
{
    private int data = 23;
    public void increase(int amt) 
    {
        int x = data;
        data = x + amt;
    }
}

a.

Synchronize the run method.

b.

Wrap a synchronize(this) around the call to f.increase().

c.

The existing code will cause a runtime exception.

d.

Synchronize the increase() method

Posted under Java Programming

Answer: (d).Synchronize the increase() method

Engage with the Community - Add Your Comment

Confused About the Answer? Ask for Details Here.

Know the Explanation? Add it Here.

Q. What will be the output of the program? Note: Assuming that data must be protected from corruption, what—if anything—can you add to the preceding code to ensure the integrity of...

Similar Questions

Discover Related MCQs

Q. Which cannot directly cause a thread to stop executing?

Q. Which three are methods of the Object class?

1. notify();
2. notifyAll();
3. isInterrupted();
4. synchronized();
5. interrupt();
6. wait(long msecs);
7. sleep(long msecs);
8. yield();

Q. Which two are valid constructors for Thread?

1. Thread(Runnable r, String name)
2. Thread()
3. Thread(int priority)
4. Thread(Runnable r, ThreadGroup g)
5. Thread(Runnable r, int priority)

Q. What is the name of the method used to start a thread execution?

Q. Which class or interface defines the wait(), notify(),and notifyAll() methods?

Q. Which of the following will not directly cause a thread to stop?

Q. Assume the following method is properly synchronized and called from a thread A on an object B:

wait(2000);

After calling this method, when will the thread A become a candidate to get another turn at the CPU?

Q. Which method registers a thread in a thread scheduler?

Q. Which will contain the body of the thread?

Q. Which method must be defined by a class implementing the java.lang.Runnable interface?

Q. Which of the following will directly stop the execution of a Thread?

Q. Which three guarantee that a thread will leave the running state?

1. yield()
2. wait()
3. notify()
4. notifyAll()
5. sleep(1000)
6. aLiveThread.join()
7. Thread.killThread()

Q. Which two of the following methods are defined in class Thread?

1. start()
2. wait()
3. notify()
4. run()
5. terminate()

Q. Which of these method wakes up all the threads?

Q. Which of these method wakes up the first thread that called wait()?

Q. Which of these method is used to tell the calling thread to give up a monitor and go to sleep until some other thread enters the same monitor?

Q. Which of this method is used to avoid polling in Java?

Q. Which of the following will ensure the thread will be in running state?

Q. Which of the following stops execution of a thread?

Q. Which of the following is a correct constructor for thread?