Java Reference
In-Depth Information
Self-Test Exercises
(continued)
public int
value()
{
return
counter;
}
public synchronized void
increment()
{
counter++;
}
}
public class
RaceConditionTest
extends
Thread
{
private
Counter countObject;
public
RaceConditionTest(Counter ctr)
{
countObject = ctr;
}
public void
run()
{
countObject.increment();
}
public static void
main(String[] args)
{
int
i;
Counter masterCounter =
new
Counter();
RaceConditionTest[] threads =
new
RaceConditionTest[30000];
System.out.println("The counter is " + masterCounter.
value());
for
(i = 0; i < threads.length; i++)
{
threads[i] =
new
RaceConditionTest(masterCounter);
threads[i].start();
}
System.out.println("The counter is " + masterCounter.
value());
}
}