Win a copy of Classic Computer Science Problems in Swift this week in the iOS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

question from khalid's mock exam  RSS feed

 
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can anybody tell me the answer for this and explain me why so.
code/
Given the following code, which statements concerning the objects referenced through the member variables i, j and k are true, given that any thread may call the methods a, b and c at any time?
class Counter {
int v = 0;
synchronized void inc() { v++; }
synchronized void dec() { v--; }
}
public class Q7ed5 {
Counter i;
Counter j;
Counter k;
public synchronized void a() {
i.inc();
System.out.println("a");
i.dec();
}
public synchronized void b() {
i.inc(); j.inc(); k.inc();
System.out.println("b");
i.dec(); j.dec(); k.dec();
}
public void c() {
k.inc();
System.out.println("c");
k.dec();
}
}
1)i.v is guaranteed always to be 0 or 1
2)j.v is guaranteed always to be 0 or 1
3)k.v is guaranteed always to be 0 or 1
4)j.v will always be greater than or equal to k.v at any given time
5)k.v will always be greater than or equal to j.v at any given time
/code
 
Ranch Hand
Posts: 1070
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
For the second one look here: http://www.javaranch.com/ubb/Forum24/HTML/006618.html
I have been throwing some of Khalid's questions here to get some responses from users, and then I supply the correct answer and the reasoning later in the thread.
Do a search for bill bozeman and khalid and you will find some.
Bill
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!