Monday, 5 October 2020

synchronization keyword use in java

 https://stackabuse.com/synchronized-keyword-in-java/#:~:text=To%20avoid%20such%20issues%2C%20Java,the%20resource%20to%20become%20free.


public class NonSynchronizedMethod { public void printNumbers() { System.out.println("Starting to print Numbers for " + Thread.currentThread().getName()); for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName() + " " + i); } System.out.println("Completed printing Numbers for " + Thread.currentThread().getName()); } }



class ThreadOne extends Thread { NonSynchronizedMethod nonSynchronizedMethod; public ThreadOne(NonSynchronizedMethod nonSynchronizedMethod) { this.nonSynchronizedMethod = nonSynchronizedMethod; } @Override public void run() { nonSynchronizedMethod.printNumbers(); } } class ThreadTwo extends Thread { NonSynchronizedMethod nonSynchronizedMethod; public ThreadTwo(NonSynchronizedMethod nonSynchronizedMethod) { this.nonSynchronizedMethod = nonSynchronizedMethod; } @Override public void run() { nonSynchronizedMethod.printNumbers(); } }


public class TestSynchronization { public static void main(String[] args) { NonSynchronizedMethod nonSynchronizedMethod = new NonSynchronizedMethod(); ThreadOne threadOne = new ThreadOne(nonSynchronizedMethod); threadOne.setName("ThreadOne"); ThreadTwo threadTwo = new ThreadTwo(nonSynchronizedMethod); threadTwo.setName("ThreadTwo"); threadOne.start(); threadTwo.start(); } }



public synchronized void printNumbers() { System.out.println("Starting to print Numbers for " + Thread.currentThread().getName()); for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName() + " " + i); } System.out.println("Completed printing Numbers for " + Thread.currentThread().getName()); }

No comments:

Post a Comment