How sweet, the study that guardian refers returns 404: http://www.greenpeace.org/international/en/silentkillers/
HN user
kostyash
The first company in the list should be Google.
To make it possible Ukraine and Chine will need to redevelop many technologies that were used to build Mriya. The technologies were gone when USSR collapsed.
Agree, that multi-threading probably the best choice for CPU-intensive applications. But for databases or http-servers multi-process + coroutines/fibers can be a better solution. For example, Redis is few-thread application. It creates additional threads only for disk I/O, because unfortunately file descriptors in Linux/UNIX do not work in async mode.
Btw, Redis reminds me, one really awesome usage of fork. To make a snapshot of itself Redis forks the main process. After that the child simply goes through tuples and write them to a files with out any worries that somebody will modify a records. Copy-on-write mechanism simply prevents it.
Redis save snapshot code: https://github.com/antirez/redis/blob/unstable/src/rdb.c#L99...
It sounds like if you use threads and fork it might be a disaster. Its true, but the author blames only fork and skip the second part of the problem, threads. This is not fair, because fork is much older than POSIX threads. In fact, POSIX threads were poorly designed to use with fork.