Hurd servers / VFS libraries are multithreaded.
Implementation
well-known threading libraries
?libpthread
Design
See libports: roughly using one thread per incoming request. This is not the best approach: it doesn't really make sense to scale the number of worker threads with the number of incoming requests, but instead they should be scaled according to the backends' characteristics.
The Critique should have some more on this.
Event-based Concurrency Control, Tom Van Cutsem, 2009.
Alternative approaches:
Continuation-passing style
- Mach internally uses continuations, too.
-
- Actor model; also see overlap with Wikipedia, object-capability model.
See also: multiprocessing.
