package com.example.sync;

public class SharedResource {

	// shared data
	private int counter = 0;

	// method method to update/increment counter
	public void increment() {
		System.out.println(Thread.currentThread().getName() + " before...");

		// synchronized block
		synchronized (this) {
			// code to update counter
			counter++;
			System.out.println(Thread.currentThread().getName() + " incremented counter to: " + counter);
		}

		System.out.println(Thread.currentThread().getName() + " after...");
	}

	// method to get counter value
	public int getCounter() {
		return counter;
	}
}
