There is no synchronization mechanism implemented.
Now if I have say a thousand live threads that call this method, is there a possibility that I could get a result of say add(2,2) = 5(or anything else other than 4).
I have not been able to replicate this anyhow. But I think that this is absolutely possible.
Saikat Mukherjee wrote:But I think that this is absolutely possible.
Why do you think that?
No, it is not possible. Every time the method is called, there are two new variables a and b. If multiple threads call the method at the same time, each thread has its own copy of a and b, which doesn't interfere with the variables of other threads.