Without information on what the distribution of lock times will be for a given application, most JVMs are conservative and simply suspend a thread when it fails to acquire a lock.
Persevere USES continuations to suspend and resume execution so that asynchronous requests are made to retrieve data from the server (so the browser doesn't lock up because of synchronous requests).