consider the following class denition this class


Consider the following class de nition. This class is considered to be in an inconsistent state if the isConsistent() method returns false false false;

public class Foo {
long mVaLue;
long mVaLueTimesTwo;
/*a
• SETS THE STATE OF DUR OBJECT.

• PAUSES BRIEFLY BETWEEN SETTING THE FIRST AND SECOND
• VALUES IN ORDER TD INCREASE THE PROBABILITY THAT THE
• OBJECT WILL BE INTERROGATED WHILE IN AN INCONSISTENT
• STATE.

• OPARAM PVALUE THE VALUE TO UPDATE THE CURRENT STATE WITH,
public synchronised void set Values(long plIalue) { stfalue p Value ;
doPause(3);
mVaLueTimesTwo = pValue • 2;
}
/•:
• CHECKS TD SEE IF THE CURRENT STATE OF OUR OBJECT IS
• CONSISTENT.

• :RETURN TVS. 17 17 IS. * /
public synchronized boolean t sCons is t ent {
return (mVatue • 2 == mValueTimesTwo);
}
/**
• UTILITY ROUTINE - PAUSES OUR THREAD BY CALLING
• SLEEP AND SUPRESSING ANY INTERRUPTEDEXCEPTION.
* /
private static void doPause(lon$ pPause) { try {
Thread.steep(pPause);
} catch (InterruptedException e) { e.printStackTrace();
}
}

a. Imagine a hypothetical version of Java where the object lock is replaced by a method lock. Under this system a call to a synchronised method would assign a lock for that method to the calling thread. No other thread could then call this method because the lock is already allocated. However, other methods of the same object could still be called. Upon the method completing, the lock is released. Under this system, is it possible to put an instance of the Foo class into an inconsistant state? If so, give a code example which could create this situation and explain how it does so. If not, explain how the method lock prevents the possibility of inconsistent state.

b. Provide one possible motivation for choosing this hypothetical method lock over an object lock. Explain your answer.

Request for Solution File

Ask an Expert for Answer!!
C/C++ Programming: consider the following class denition this class
Reference No:- TGS0501453

Expected delivery within 24 Hours