This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
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