What is the difference between Synchronizing mehtod &
Synchronizing block?

Answer Posted / kanu butani

The Java programming language provides two basic
synchronization idioms: synchronized methods and
synchronized statements.

The more complex of the two, synchronized statements, are
described in the next section. This section is about
synchronized methods.

To make a method synchronized, simply add the synchronized
keyword to its declaration:

public class SynchronizedCounter {
private int c = 0;

public synchronized void increment() {
c++;
}

public synchronized void decrement() {
c--;
}

public synchronized int value() {
return c;
}
}

If count is an instance of SynchronizedCounter, then making
these methods synchronized has two effects:
First, it is not possible for two invocations of
synchronized methods on the same object to interleave. When
one thread is executing a synchronized method for an
object, all other threads that invoke synchronized methods
for the same object block (suspend execution) until the
first thread is done with the object.
Second, when a synchronized method exits, it automatically
establishes a happens-before relationship with any
subsequent invocation of a synchronized method for the same
object. This guarantees that changes to the state of the
object are visible to all threads.
Note that constructors cannot be synchronized — using the
synchronized keyword with a constructor is a syntax error.
Synchronizing constructors doesn't make sense, because only
the thread that creates an object should have access to it
while it is being constructed.

Is This Answer Correct ?    0 Yes 3 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is command line used for?

843


What is a treeset class?

783


What is bubble sorting in java?

832


Explain abstract class in java?

780


What are different type of exceptions in java?

754


When should the method invokelater() be used?

778


How do you end a program?

778


can java object be locked down for exclusive use by a given thread? Or what happens when a thread cannot acquire a lock on an object? : Java thread

765


Define how destructors are defined in java?

786


What is default size of arraylist in java?

793


How do you define a parameter?

808


What is the difference between class & structure?

805


What all methods are used to prevent thread execution ?

769


What is difference between java and java ee?

777


What is the difference between == and === javascript?

823