Incidentally, there is less overhead to spawning a child process on Linux (using fork()) than there is spawning a thread on Windows. I wish I had a source for that, but it's in a book I read a little while ago.
On Linux, a lot of things (particularly daemons) will fork when they get a request. The child process (which can share memory with its parent, in an efficient way) handles the request and the main process goes back to listening.