Question: Class MyList given below uses a binary Semaphore to make the methods set and inc thread safe. The solution uses coarse - grained synchronization. Re

Class MyList given below uses a binary Semaphore to make the methods set and inc thread safe. The solution uses coarse-grained synchronization. Re-write the class using semaphores to provide a fine-grained synchronized solution that makes the class thread safe.
class MyList{
private int[] list = new int[100];
private Semaphore lock = new Semaphore(1); MyList(){
for(int j =0; j <100; j++) list[j]=(int)(Math.random()*100); }
public void set(int x, int ind){//assume 0<= ind <100 try{lock.acquire();}
catch(InterruptedException e){} list[ind]= x;
lock.release();
}
public void inc(int x, int ind){//assume 0<= ind <100
try{lock.acquire();} catch(InterruptedException e){} list[ind]+= x;
lock.release();
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!