Hello Taha, I'm going to move this post to the Java Beginners forum where it can be properly answered. Also, you may want to do a search on that forum for the word "synchronized", I'm sure you'll find many posts.
Hi Taha, Welcome to JavaRanch. Java is a multi-threaded language, which means that in a single application you can have many threads of execution running at the same time. Let's say you have a class which has a reference to some object which can be changed when certain methods are called. What do you think would happen to that object if five threads were allowed to gain access to it at the same time? It would soon become corrupted. That is where synchronized comes in. Using the synchronized keyword on a method or an object guarantees that only one thread at a time can gain access to that block of code. Here are a couple of examples:
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com