1) Whats the difference between synchronized block and method level synchronization?
synchronized block is to acquire the monitor for the object/class you synchronized on.
syncrhonized method is to acquire the monitor of "this"
2)why method level synchronization is not preferred? how does it slows down the performance?
for performance purpose, you would only want to synchronized on the code block need to be synchronized. not the whole method.
3)I dont know if this question is related to threads, i thought it might be achieved through threads,
If two persons at the same time are trying to buy ticket for the same seat in a Airplane? How to avoid this situation and not let the seat become blocked?
can this be achieved using Threads?
synchronized would work in this case. as jdk 1.5/1.6, you could use CompareAndSet which is use less instructions but achieve the same effect as synchornized.