Help the world stop coronavirus! Stay home!

Prev Next

Java / volatile

volatile example.

package com.tutorials.volatileKeyword.volatileExample;

public class MyThread {

	private static volatile int Shared_Variable = 0;

	public static void main(String[] args) {
		new ReadOnChange().start();
		new Writer().start();
	}

	static class ReadOnChange extends Thread {
		@Override
		public void run() {
			int local_value = Shared_Variable;
			while (local_value < 5) {
				if (local_value != Shared_Variable) {
					System.out.println("Value changed for Shared_Variable :"
							+ Shared_Variable);
					local_value = Shared_Variable;
				}
			}
		}
	}

	static class Writer extends Thread {
		@Override
		public void run() {

			int local_value = Shared_Variable;
			while (Shared_Variable < 5) {
				System.out.println("changing the Shared_Variable to "
						+ (local_value + 1));
				Shared_Variable = ++local_value;
				try {
					Thread.sleep(300);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

Output:

 changing the Shared_Variable to 1
Value changed for Shared_Variable :1
changing the Shared_Variable to 2
Value changed for Shared_Variable :2
changing the Shared_Variable to 3
Value changed for Shared_Variable :3
changing the Shared_Variable to 4
Value changed for Shared_Variable :4
changing the Shared_Variable to 5
Value changed for Shared_Variable :5

Output (with no volatile keyword):

changing the Shared_Variable to 1
changing the Shared_Variable to 2
changing the Shared_Variable to 3
changing the Shared_Variable to 4
changing the Shared_Variable to 5

❤Cash Back At Stores you Love !!!❤

Earn your $10 reward when you make your first purchase through Ebates by signing up with clicking below button.

Ebates Coupons and Cash Back

More Related questions...

Show more question and Answers...

Java ThreadLocal

Comments & Discussions