3) Windows did support something called micro
threads, which had a much lower over head than traditional threads.
These ( if i remember correctly ) were designed specifically for scalable IO (
as in IIS ). Some time looking here may well yield some useful
results.
I come from a nix background, but I wouldn't doubt
that windows also has had some implementation of microthreads. The best
current way to use microthreads afaik is stackless python (stackless.org) which
I (as the game mechanics programmer) plan to use on the server side of the game
my company (In-Orbit Entertainment) is working on using the Nel library.
Microthreads use an old and mostly forgotten programming concept called
continuations- a continuation is, in brief, the rest of a program from any given
point- that includes it's state and any branch of code it might follow from
there. Stackless Python provides a way to reference continuations- which
requires it not to use the C stack for framing(a neat trick u should read
about). Writing microthreads is as simple as defining a bunch of functions
and calling them at the same time with a special call- they are executed in
parralel within the same thread and each requires almost no overhead above what
they would if executed in serial. EVE (a commercial mmorpg) also plans to
use stackless as the basis for their game mechanics. I dont have any
benchmarks on its network performance or scalability, but I plan to test it
soon.
Michael Warnock
In-Orbit Entertainment
|