In fact, the invocations to the listeners are done on a single shared thread.
If there are heavy or blocking operations to be done on update events, you should dispatch and enqueue these operations...