Skip to content

React2github/java-threads-lab-4

 
 

Repository files navigation

Threads Lab 4

Instructions

You are given the following Counter class:

class Counter {

    long count = 0;

    public void inc() {
        count++;
    }

    public long getCount() {
        return count;
    }
}

We are running this code in our main method:

import java.util.stream.IntStream;

class Main {
    public static void main(String[] args) throws InterruptedException {
        Counter counter = new Counter();

        Thread t1 = new Thread(() -> IntStream.range(0, 10_000_000).forEach((i) -> counter.inc()));
        Thread t2 = new Thread(() -> IntStream.range(0, 30_000_000).forEach((i) -> counter.inc()));

        t1.start();
        t2.start();

        t1.join();
        t2.join();

        System.out.println(counter.getCount());
    }
}

We are using two threads, t1 and t2, to increment the count value of the same Counter instance. If you run this code, it will give the wrong answer most of the time.

Fix the Counter class code to make sure the main method always print 40000000.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%