Perhaps, but it makes no sense. The doSomething method reads / writes some data, say, the fields of the object to which the method belongs. The most obvious and reliable way is to declare the doSomething synchronized method, as well as all other methods that can be called from different threads. The synchronized block is used only for optimization, and novice programmers should avoid using it.
As for the βbest effort,β the best programming effort means no less reliable and proven functionality. All other "efforts" are not the best, including your code.
source share