Thread - The # between static synchronized and non static synchronized
Reda Mokrane
Ranch Hand
Joined: Jul 25, 2001
Posts: 235
posted
0
hi all, what's the difference of these static synchronized and non static synchronized? why the output is # ? here is the code for the static synchronized
here is the code for the non static
Alex Sbityakov
Ranch Hand
Joined: Jul 23, 2001
Posts: 49
posted
0
I think the difference is that, the first code defines a class lock. So, when you instantiate two objects of the same class, the second string must wait for the first to finish, since it is unable to access the class lock. In the second example, you have object locks. Since you have two different objects, nothing prevents the two threads fom running concurrently. Correct me if I'm wrong, Alex
Reda Mokrane
Ranch Hand
Joined: Jul 25, 2001
Posts: 235
posted
0
object locks and class locks... thank you Alex.
MrShahid khan
Greenhorn
Joined: Jul 12, 2001
Posts: 14
posted
0
Alex is right u cannot execute non-static synchronized methods simultaneouly for the same object whereas for the static sync methods since they are assoiciated with the class they cannot be executed for the class simultaneoulsy
Reda Mokrane
Ranch Hand
Joined: Jul 25, 2001
Posts: 235
posted
0
For a static method, a " lock " is obtained for the class before the execution of the method. Correct me if I'm wrong.
Ragu Sivaraman
Ranch Hand
Joined: Jul 20, 2001
Posts: 464
posted
0
Before entering the synch code, the thread should have the object or class lock. Thats how semaphores work (monitors in java) HTH
Rashmi Hosalli
Ranch Hand
Joined: Jun 25, 2001
Posts: 50
posted
0
Alex, Can two threads run concurrently? and MrShahid khan,can you please explain more clearly...I am a bit confused here. Thanks, Rashmi