Vertx 3.4: Difference between running code immediately and context.runOnContext

I am trying to figure out the basics of Vertx. I was going through standard doc on it here, where I stumbled upon a section on context object. It says that it lets you run your code later by providing a method called runOnContext. The thing I don’t understand is, in which case would I choose to invoke a (non-blocking) block of code later? If the code is non-blocking, it will take same amount of time, whether you execute it now or later.

Can anyone please tell me, in which case, context.runOnContext will be helpful?

Most often it will be helpful if you call it from another thread. It will schedule a task for execution by the event loop bound to this context.

If you’re already on the event loop, you may also use it when you read items from a queue: instead of processing all items as a single event, you would schedule an event per item in the queue. That would give other kind of events (network, filesystem) a chance to be processed earlier.