Microthreads are a perfect answer. Microthreads switch faster and use much less memory than OS threads. You can run thousands of microthreads simultaneously. A continuation represents all the future computations of a particular program. In particular, there's great scope for optimizing assignment of different calculations to different processes or threads or even hosts.
Continuations are sufficiently general that they can model threads efficiently.
They're supposed to be much nimbler than processes, for example. This is no longer true, though. Common industry practice has caused threads and processes to converge in their resource demands. Threads are not particularly lightweight. Think for a minute about an ideal thread, not the one leading OSs provide, but a minimal flow of execution burdened with as little communication and synchronization overhead as possible.