To be more forthcoming, there was a long period when the received wisdom
was that threads were unmanageable. But that was a category error: The
programming model in POSIX and others was what made it hard. The
fundamental concepts are a tiny step harder than trivial, and it was not
hard to build a programming model that matched them.
The first mistake people made was to split "thread" from "process".
What
those words mean today is not what they meant a generation ago.
For me, it's like the mess sockets made of networking. Our programming
models could be so much simpler than what we are required to deal with.
-rob