KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
In a highly concurrent Java program and assuming that my methods are correctly written and correctly synchronized, I am wondering about how to determine which is better: void synchronized something() { ... } or void something() { synchronized(this) { ... } // here do stuff no requiring synchronization . . // do computation 'A' . synchronized(this) { ... } // here do other stuff no requiring synchronization . . // do computation 'B' . synchronized(this) { ... } } Now I realize that if computation 'A' and 'B' takes a lot of time, the second version is obviously better. My question, however, is : at which point do you know that the second version is more efficient? Is the second version always faster or is there an hidden cost about acquiring/releasing the lock several times? What if my computation 'A' is simply something trivial like: s.getString().substring( 0, 2 ).toLowerCase();
Tags (comma-separated)
Save Edits
Cancel