B.staticMethod() is already thread safe (it is synchronized). because of
that, the caller class (Class A) do not need to use a lock again.


On Mon, Apr 21, 2014 at 8:04 PM, Sohani Weerasinghe <[email protected]> wrote:

> Hi All,
>
> Since synchronization on static methods is a class level locking a second
> thread can't access the method until first thread releases the lock. The
> static method has synchronized as shown below.
>
> public class B{
> public *synchronized* static void staticMethod(String a){
>     }
> }
>
> If this method calls by another class (Class A), then do I have to use a
> synchronized block as shown below to avoid multiple threads accessing the
> static method?
>
> Public class A {
> *private static Object lock = new Object();*
>
> public static void main(String[] args){
>     *synchronized(lock){*
>            B.staticMethod("hello");
>                         *}*
>                }
>       }
>
> Can someone provide a solution on this ?
>
> Regards,
> Sohani
>
>  Sohani Weerasinghe
> Software Engineer
> WSO2, Inc: http://wso2.com
>
> Mobile  : +94 716439774
> Blog     :http://christinetechtips.blogspot.com/
> Twitter  : https://twitter.com/sohanichristine
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
K.D. Chamil Jeewantha
Associate Technical Lead
WSO2, Inc.;  http://wso2.com
Mobile: +94716813892
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to