How I implemented Multithreading and reduced my API time from 4s to <100ms Note that "speed-up" of the API comes with the price of the result obtaining. In you case you just get rid of blocking call delegating it to other thread (fire-and-forget). If the result is needed you will need a polling system with storing async id or similar. Spring's async support made for more general idea, it is about to bring full scale async support to platform hiding the complexity of the Future facility. Async idea is about to minimise thread blocking and more fare resource managing (task spliting, job stealing). Also Spring take care of thread locals propagations (for example, security context). We can achieve the above said in the following ways: Also locks. Locks are much more preferable than syncronize blocks/methods as they are using CaS instructions.