What I have now can best be described as cooperative multitasking with custom contexts. Example: the FTP server and HTTP server keep track of each user connection, provide them a buffer, and know the state of the session and how far into the file they are that is being transferred. (True multithreading would generalize that kind of context as a set of registers and a stack for each thread.)