In other single-threaded environments, you can get something like threads via ???pseudo-threading???, which involves dividing up the heavy computation into small chunks on your own. (There is no solution to allow for blocking or yielding other than refactoring the application to be even-driven).