Javatpoint Logo
Javatpoint Logo

Java Program to Demonstrate the Non-Lazy Initialization Thread-Safe

In Java, threads are independent units of execution that can run concurrently, allowing for improved processing speed by utilizing multiple CPU cores. Thread safety in Java refers to the property of a program or code that can handle and execute correctly regardless of the number of threads created and executed simultaneously.

When we say a program is thread-safe, it means that the program's output or behavior remains consistent and expected even when multiple threads are accessing and modifying shared resources concurrently. It is particularly important when multiple threads access and manipulate the same data or resources.

The Singleton design pattern is A common example demonstrating the need for thread safety. In the Singleton pattern, we want to ensure that only one instance of a class is present throughout the program's execution. Any attempt to create new instances after the first one should return a reference to the existing instance.

Making a Singleton class thread-safe ensures that even if multiple threads try to create instances concurrently, only one instance will be created. It prevents data inconsistencies, race conditions, and unexpected behavior that could occur if multiple instances of the Singleton class were allowed.



Thread 1: Vehicle ID - Vehicle@7f5460e1
Thread 2: Vehicle ID - Vehicle@7f5460e1
Thread 3: Vehicle ID - Vehicle@7f5460e1

Explanation: Thread 1 creates a new instance of the Vehicle class. Thread 2 calls the getInstance() method and gets the same instance of the Vehicle class created by Thread 1. Thread 3 calls the getInstance() method and gets the same instance of the Vehicle class created by Thread 1. All three threads print the ID of the Vehicle class. The ID is 0 because all three threads get the same class instance.

Youtube For Videos Join Our Youtube Channel: Join Now


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Trending Technologies

B.Tech / MCA