Static synchronization vs instance var synchrnisation
navi shrav
Greenhorn
Joined: Aug 14, 2002
Posts: 1
posted
0
hi all, can anybody help me understand as to how a static variable is synchronized verses an instance variable or the difference in the two. thanks in advance.
Anthony Villanueva
Ranch Hand
Joined: Mar 22, 2002
Posts: 1055
posted
0
Hi Navi, variables can't be directly synchronized. Only methods and code blocks can be synchronized. Please see the Sun tutorial on synchronization.
Ron Newman
Ranch Hand
Joined: Jun 06, 2002
Posts: 1056
posted
0
It is, however, possible for static methods to be synchronized -- the lock lives in the Class object.
Ron Newman - SCJP 1.2 (100%, 7 August 2002)
Ilya PA
Greenhorn
Joined: Aug 30, 2002
Posts: 4
posted
0
Hi Navi, Actually as far as i know you can synchronize a variable. U can do that placing the 'volatile' keyword before a variable's name. This is often used with variables of size bigger then a CPU word size. For example normal PIII word size is 32bits, but variables of type long and double are 64bit vars. So when one thread loads a part of a long var to the cpu(first 32bits), another thread should not be able to access that variable.
If you're talking about synchronizing static methods there is a difference. In this case the class lock is acquired whereas with the non-static method the object lock is acquired.