The map labelling mechanism in JViews Maps is implemented in a background thread as well. This way, the user can continuously zoom, pan, and scroll the view without being slowed down by the sometimes CPU intensive layout algorithms.
As soon as user interaction with the view stops, a timer starts. If no further change occurs in the view within a certain length of time (a few hundreds of milliseconds typically), the label layout process starts in the dedicated background thread. If it does not finish before the view changes again, the current task is cancelled so that the next one can start as soon as possible.