Thread Synchronization in Java

In this article, we will learn about Thread Synchronization in Java.

When we start two or more threads in a program, it may happen that multiple threads try to access the same resource and end up failing due to compatibility issues. For example, if multiple threads try to write to the same file, they can corrupt the data because one thread overwrites the data or if one thread is dropping the same file at the same time. If it opens, another thread can close the file.

It is therefore necessary to synchronize the action of multiple threads and ensure that only one thread can access the resource at any given time. That is implementing with a concept called monitor. Every object in Java is associate with a monitor that a thread can lock or unlock. Only one thread can hold a lock on a monitor at a time.

The Java programming language offers a very easy way to create threads and synchronize their functions with synchronized blocks. You put shared resources in this block. Here is the general form of synchronization instructions.


synchronized(objectidentifier) {
   // Access shared variables and other shared resources

Here the object identifier is a reference to an object whose lock is linked to the monitor that is represented by the synchronized instruction. We will now see two examples in which we are printing a counter with two different threads. When the threads are out of sync, they don’t display the value of the counter one after the other, but if we output the counter by putting it in the Synchronized () block, the counter for both threads is output very one after the other.

That’s all, we will learn about Thread Synchronization in Java.

Next Article

Multithreading Example without Synchronization

Please share this post:
Posts created 77

Ask a Question

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

%d bloggers like this: