This is related to threads. I have a class with synchronized
method m1(). Can I create different instances of this class
and execute the m1() for different threads?

Answer Posted / qim2010

Putting code inside a synchronized block makes the compiler
append instructions to acquire the lock on the specified
object before executing the code, and release it afterwards
(either because the code finishes normally or abnormally).
Between acquiring the lock and releasing it, a thread is
said to "own" the lock. At the point of Thread A wanting to
acquire the lock, if Thread B already owns the it, then
Thread A must wait for Thread B to release it. Thus in the
example below, simultaneous calls to increment() and
getCount() will always behave as expected; a read could not
"step in" while another thread was in the middle of
incrementing.

public class Counter {
private int count = 0;
public void increment() {
synchronized (this) {
count++;
}
}
public int getCount() {
synchronized (this) {
return count;
}
}
}

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is the list interface?

606


Which is illegal identifier in java?

587


Can we declare main () method as non static?

518


What are variable names?

526


Which is easier netbeans or eclipse?

608






What is boolean in java?

507


Is java owned by oracle?

522


What is difference between this and super keyword?

512


What is the difference between a local variable and an instance variable?

545


Describe how to implement singleton design pattern in struts.

529


What does string intern() method do?

585


Can we override constructor in java?

574


Who found java?

548


What about main thread in java?

645


What is multiple inheritance? Is it supported by java?

526