The alternatives you mention can be made to work kind of like threads, but it won't be exactly the same (even ignoring performance differences). To answer your question we'd need to know what you need exactly.
If you need something that works exactly like threads but without using threads, the closest alternative is to use separate processes. Passing around requests and results becomes a bit of a pain, though.