Forums Register Login

some question about static methods and Thread safety , please

+Pie Number of slices to send: Send
Hi
Thank you for reading my post.
1-Are static methods thread safe ? I mean if i declare a method to be static , will it run in guarded mode ?
2-if static methods are thread safe , does JVM run them internally in Synchronized mode?

by static method i mean :

Thank you
+Pie Number of slices to send: Send
Static-ness and thread safety are unrelated concepts. The JVM runs them in synchronized mode only if they're declared to be synchronized, or part of a synchronized block. So a static method needs to take the same precautions a non-static method would take against concurrent access problems.
+Pie Number of slices to send: Send
In general what makes something unsafe is two threads locking or modifying a shared resource like an object, file, database or partner system. Your method didn't do that, so it's ok for now.

You could have a shared resource as a static varible, a parameter, a member variable on a singleton, anything you get from another method, anything you give to another method or something external to your code. I bet there are more ways I didn't think of just now. All this can make maintaining thread safety kind of tricky!
+Pie Number of slices to send: Send
raminaa,

Are you aware that static methods can be modified by the keyword "synchronized", and that the following two ways of making a static method synchronized are equivalent?
Get off me! Here, read this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 945 times.
Similar Threads
encapsulation
Are these two methods equivalent?
synchronized keywords in static methods
static methods and threads
Threads updating a static variable
More...

All times above are in ranch (not your local) time.
The current ranch time is
Apr 16, 2024 09:02:46.